更改AngularJs中事件的选定选项

时间:2014-04-21 10:45:37

标签: angularjs

我是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。每当我们更改第一个选择框的选项时,控制器中定义的函数将运行。在该函数中,第二个选择框的值会更改。但是这部分功能不起作用。

请帮我解决一下。 提前谢谢。

1 个答案:

答案 0 :(得分:0)

每当您更改第一个选择框时,将执行AppChange方法,触发&#39;保存&#39; AppDataService中的方法。在这里,promise对象通过&#39;然后&#39;来访问AJAX调用的结果。方法(see $q service documentation)

  

然后(successCallback,errorCallback,notifyCallback) - 无论如何   当承诺已经或将要解决或拒绝时,请拨打一个   成功或错误回调一旦结果异步   是可用的。

在上面的控制器中,您只提供成功回调,而您可能有错误,并且您的成功代码将无法执行。

首先应检查是否执行了成功回调,然后再进行调试。我的猜测是你从服务器上得到一些错误,你永远不会达到成功状态。