$scope.$digest() 不填充 select2 下拉列表
$scope.$digest() doesn't populate select2 drop down list
我有 2 个下拉列表使用 ui-select2
<label class="control-label" for="MakeSelect">Make </label>
<select class="form-control col-md-2" id="MakeSelect" name="make" ui-select2
ng-model="carDetails.make">
<option ng-if="!carDetails.make" value="">[SELECT]</option>
<option ng-repeat="make in makes" value="{{ make }}">{{ make}}</option>
</select>
</div>
<div class="col-md-5">
<label class="control-label" for="ModelSelect">Model </label>
<select class="form-control col-md-2" id="ModelSelect" name="make" ui-select2
ng-model="carDetails.model">
<option ng-repeat="model in models" value="{{ model }}">{{ make}}</option>
</select>
在下拉列表中选择一个值后 "Makes" 我正在激活一个手表,在其中加载 "Models" 下拉列表的内容。
然后,为了刷新 GUI 中的下拉列表内容,我调用 $scope.$digest() :
$scope.$watch('carDetails.make', function (make) {
console.log('selected make is: ' + make);
if (make == "") {
return;
}
Parse.Cloud.run('getCarModels', {'Make': make}, {
success: function (results) {
$scope.parseModels = results.resultSet;
$scope.models = results.distinctModels;
$scope.$digest();
},
error: function () {
console.log("Error: Failed to load models");
console.log(Parse.Error);
}
});
问题是 with $digest 第一个下拉列表的选定值变为 null 而 without 它只是没有'不要刷新视图。
有什么建议吗?
它们都指向同一个示波器模型,carDetails.make。因此,当然,第一个将变为空,因为第二个下拉列表将 carDetails.make 设置为空。另外,我认为您不需要使用摘要,尽管您应该使用 $scope.$apply。但是,无论如何,angularjs 应该 运行 摘要。
我有 2 个下拉列表使用 ui-select2
<label class="control-label" for="MakeSelect">Make </label>
<select class="form-control col-md-2" id="MakeSelect" name="make" ui-select2
ng-model="carDetails.make">
<option ng-if="!carDetails.make" value="">[SELECT]</option>
<option ng-repeat="make in makes" value="{{ make }}">{{ make}}</option>
</select>
</div>
<div class="col-md-5">
<label class="control-label" for="ModelSelect">Model </label>
<select class="form-control col-md-2" id="ModelSelect" name="make" ui-select2
ng-model="carDetails.model">
<option ng-repeat="model in models" value="{{ model }}">{{ make}}</option>
</select>
在下拉列表中选择一个值后 "Makes" 我正在激活一个手表,在其中加载 "Models" 下拉列表的内容。 然后,为了刷新 GUI 中的下拉列表内容,我调用 $scope.$digest() :
$scope.$watch('carDetails.make', function (make) {
console.log('selected make is: ' + make);
if (make == "") {
return;
}
Parse.Cloud.run('getCarModels', {'Make': make}, {
success: function (results) {
$scope.parseModels = results.resultSet;
$scope.models = results.distinctModels;
$scope.$digest();
},
error: function () {
console.log("Error: Failed to load models");
console.log(Parse.Error);
}
});
问题是 with $digest 第一个下拉列表的选定值变为 null 而 without 它只是没有'不要刷新视图。
有什么建议吗?
它们都指向同一个示波器模型,carDetails.make。因此,当然,第一个将变为空,因为第二个下拉列表将 carDetails.make 设置为空。另外,我认为您不需要使用摘要,尽管您应该使用 $scope.$apply。但是,无论如何,angularjs 应该 运行 摘要。