2

我已經做了這麼多時間在pure angular.js with ng-router但不更改知道什麼是錯了,在這裏​​離子不反映父範圍

我希望有一些$ scope性能/對父範圍的對象,我可以閱讀和從子作用域修改,它們可以反映出每一個地方(沒有出廠),使國家之間的清爽doent寬鬆的數據和我有共同的地方,以保持它

我曾嘗試:

我第一次嘗試整個應用程序的路線,以一個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" 
    }) 
繼承裏面包裹

問題而努力:

問題是,可以說,我有一個屬性$scope.selectedForm=21;appCtrl,我可以正確地訪問它(笑WS在所有狀態21),但cant modify it$scope.selectedForm=22;)它不反射回

虛擬cotrollers

appctrl(父):

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

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

formCtrl(子):

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

回答

3

回答很明顯,我怎麼忘了dot rule

浪費了我幾個小時要發佈它,如果任何一個人得到堅持這種問題

變化僅在objects and arraynot on primitive types

家長反映:

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

小孩:

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

Here是繼承的細節