我有一个包含一组下拉菜单以选择标准的div。我们可以使用加号和减号按钮添加或删除条件。填充下拉列表的值是从API中获取的。观看Angularjs中的选择项目
用于UI的代码如下:
<form novalidate="" role="form" name="filterForm" class="form-inline">
<div ng-repeat="criteria in criterias">
<div class="m-b">
<div class="form-group s-b" style="width: 150px;">
<span>Country</span>
<select class="form-control" ng-options="item for item in country" name="account" ng-model="criteria.country" style="max-width:100%"></select>
</div>
<div class="form-group s-b" style="width: 150px;">
<span>State</span>
<select ng-options="item for item in state" class="form-control" name="account" ng-model="criteria.state" style="max-width:100%"></select>
</div>
<div class="form-group s-b" style="width: 150px;">
<span>City</span>
<select class="form-control" ng-options="item for item in city" name="account" ng-model="criteria.city" style="max-width:100%;"></select>
</div>
<div class="form-group s-b" style="width: 150px;">
<span>Predicate</span>
<select class="form-control" name="account" ng-model="criteria.predicate" style="max-width:100%">
<option value="matches">Matches</option>
<option value="not-matches">Not Matches</option>
</select>
</div>
<div class="form-group s-b" style="width: 100px;">
<span>Value</span>
<select class="form-control" ng-options="item for item in value" name="account" ng-model="criteria.value" style="max-width:100%;"></select>
</div>
<div class="form-group s-b" style="margin-top: 20px;">
<span>
<button class="btn btn-sm btn-primary pad-btn" type="submit" ng-click="addCriteria()">
<i class="fa fa-plus"></i>
</button>
<button class="btn btn-sm btn-danger pad-btn" type="submit" ng-click="deleteCriteria(criteria)">
<i class="fa fa-minus"></i>
</button>
</span>
</div>
</div>
</div>
<button class="btn btn-sm btn-primary pad-btn align-center" type="submit" ng-click="searchParams(filterForm)">Submit
<i class="fa fa-check"></i>
</button>
<button class="btn btn-sm btn-warning pad-btn align-center" type="submit" ng-click="resetFilter()">Reset
<i class="fa fa-reply"></i>
</button>
</form>
我需要留意的下拉和处理用于相应的标准的事件,并更新该标准其它相应的下拉元件。请让我知道如何处理$ watch元素,当用户添加使用加号按钮时有很多标准,因为我不是AngularJs上的高级程序员。
更新问题
基础上的建议,我已经使用了ng-change
代替$watch
,我现在能够处理该事件,并也得到了参考criteria
对象。处理事件后,我需要更新所选country
的state
值。我已经用下面的代码更新了Plnkr链接,但即使在使用$scope.criterias[index] = user;
更新了范围后,state
下拉列表也没有得到更新。请让我知道如果我失去了一些东西。
更新的代码来处理更改事件:
$scope.handleClassification = function(index){
var user = $scope.criterias[index];
user.config=["California"];
$scope.criterias[index] = user;
console.log(user);
}
我提供更新plnkr链接查看更多细节 - Plnkr
你有什么标准? –
我会使用ng-change指令而不是观看Checkout链接https://docs.angularjs.org/api/ng/directive/ngChange – katmanco
@Poyraz标准是一个包含国家,州,城市,谓词和价值的对象。这是一个标准。用户可以创建多个标准。 – zilcuanu