离子不反映父范围的变化

Ionic not reflecting Changes to parent scope

我在 pure angular.js with ng-router 做过很多次,但不知道 ionic using ui-router

有什么问题

我想在父作用域上有一些 $scope properties/objects,我可以从子作用域读取和修改它们,它们可以反映每个地方(没有工厂), 所以状态之间的刷新不会丢失数据,我有共同的地方来保存它

我试过的:

我首先尝试将整个应用程序路由包裹在 div

<div ng-controller="appCtrl">
     <div ui-view></div>
 </div>

这没有用,所以我将应用程序状态设为 abstract 状态和控制器,现在所有状态都继承自它

.state('app', {
    url: "/app",
    abstract: true,
    controller : 'appCtrl',
    templateUrl: "templates/app.html"
  })

     .state('app.login', {
    url: "/login",
    parent:"app",
    //abstract: true,
    controller : 'loginCtrl',
    templateUrl: "templates/login.html"
  })
      .state('app.form', {
    url: "/form/:selectedForm",
    //abstract: true,
    //reload:true,
    parent:"app",
    controller : 'formCtrl',
    templateUrl: "templates/selected-form.html"
  })

尝试时遇到问题:

问题是假设我在 appCtrl 上有一个 属性 $scope.selectedForm=21;,我可以正确访问它(在所有状态下显示 21)但是 cant modify it$scope.selectedForm=22;) 它不会反射回来

虚拟控制器

appctrl(父级):

 .controller('appCtrl', function ($scope) {

        $scope.InspectedForms = [];
        $scope.currentForm= {}
        $scope.selectedForm=21;
    })

formCtrl(子):

 .controller('formCtrl', function ($scope, $stateParams, authService) {
             $scope.selectedForm=22;
});

答案很明显,我怎么忘了dot rule

浪费了我几个小时,想post好像其他人都被这种问题卡住了

更改仅反映在 objects and arraynot on primitive types

Parent:

app.controller('Parentctrl',function($scope){
    $scope.parentprimitive = "some primitive value"
    $scope.parentobj = {};
    $scope.parentobj.parentproperty = "somevalue";
});

Child:

app.controller('ctrlChild',function($scope){
    $scope.parentprimitive = "this will NOT modify the parent"
    $scope.parentobj.parentproperty = "this WILL modify the parent";
});

Here是关于继承的详细信息