从状态返回时,选择不绑定到值

时间:2016-06-20 08:08:27

标签: angularjs select ionic-framework angularjs-scope angular-ui-router

我在ControllerA

中有以下选择列表
<select ng-model="selecteditem" ng-change="selectedItem(selecteditem)" ng-options="item.id as item.name for item in items" ></select>

我在Add()中有两种方法,Update()ControllerB,它们几乎相同

 $scope.add = function (g) {
    if (g != '') {
        .
        .
        .
        .
        $scope.grade = {};
        $state.go('grades', { selecteditem: g, items: $scope.items }, false);
    }
}
ControllerA

中的

 $scope.$on('$ionicView.beforeEnter', function (viewData) {
        if ($stateParams.items != null && $stateParams.items.length > 0) {
            $scope.items = $stateParams.items;
            $scope.selecteditem= $stateParams.selecteditem;
            ....
        }
        else {
           ......
        }
    });
Add()函数中的

,一切正常,但在Update()函数中,当我返回ControllerA时,select不绑定到selecteditem并显示开始时为空值。有什么问题?

1 个答案:

答案 0 :(得分:0)

有几种选择。 这些控制器如何相关?

  1. 您始终可以通过$ parent访问父控制器范围:

    $rootScope.selectedItem = .....

  2. 您可以使用可从每个控制器访问的$ rootScope

    .service('myService', function () { this.selectedItem = null; });

    你需要将$ rootScope注入你的控制器

  3. 使用服务可能是最佳选择:

    myService.selectedItem = ..........

  4. 您可以将服务注入控制器,然后设置/访问所需的变量,如:

    Tools