我是AngularJs的新手,我试图在更改其他选择框时更改选择框的选定选项。
所以有2个这样的选择框:
<select class="form-control" id="select-01new" ng-model="applicationOption" ng-change="AppChange(applicationOption)">
<option value="">Please Select</option>
<option ng-repeat="act in applicationOptions" value="{{act._id}}">{{act.name}}</option>
</select>
<select data-ng-model="posture.Value" id="scurityPosture" data-ng-options="act as act for act in activities" class="form-control">
</select>
这是控制器:
sampleApp.controller('CreateAppController', function ($scope, AppDataService) {
$scope.posture = {
name: "Dani",
Value: "Low"
};
$scope.activities =
[
"High",
"Medium",
"Low"
];
$scope.AppChange = function () {
AppDataService.save($scope.applicationOption).then(
function (datac) {
$scope.posture = { name: "Dani", Value: "High" };
});
}
});
您可以看到,第一个选择框中有ng-change
。每当我们更改第一个选择框的选项时,控制器中定义的函数将运行。在该函数中,第二个选择框的值会更改。但是这部分功能不起作用。
请帮我解决一下。 提前谢谢。
答案 0 :(得分:0)
每当您更改第一个选择框时,将执行AppChange方法,触发&#39;保存&#39; AppDataService中的方法。在这里,promise对象通过&#39;然后&#39;来访问AJAX调用的结果。方法(see $q service documentation):
然后(successCallback,errorCallback,notifyCallback) - 无论如何 当承诺已经或将要解决或拒绝时,请拨打一个 成功或错误回调一旦结果异步 是可用的。
在上面的控制器中,您只提供成功回调,而您可能有错误,并且您的成功代码将无法执行。
首先应检查是否执行了成功回调,然后再进行调试。我的猜测是你从服务器上得到一些错误,你永远不会达到成功状态。