2016-09-07 32 views
1

相同的控制器app.js

我已經創建有命名爲vendorCtrl相同的控制器,因爲我們知道,$範圍可用於多個視圖withing特定的控制器,我的問題是沒有的$ rootscope幫助我如何共享命名爲基礎,區域的多個視圖之間的數據,身份

$stateProvider 
     .state('dashboard.vendor.add',{ 
      views:{ 
       '@': { 
        templateUrl: 'templates/vendor/forms/basic.html', 
        controller : 'vendorCtrl' 
       } 
      } 
     }) 


     .state('dashboard.vendor.add.areas',{ 
      views:{ 
       '@': { 
        templateUrl: 'templates/vendor/forms/areas.html', 
        controller : 'vendorCtrl' 
       } 
      } 
     }) 



     .state('dashboard.vendor.add.identity',{ 
      views:{ 
       '@': { 
        templateUrl: 'templates/vendor/forms/identity.html', 
        controller : 'vendorCtrl'  
       } 
      } 

     }) 

回答

0

,一方面,隨着ui-router您可以使用the params property

另一方面,您可以使用一個簡單的(getter/setter?)service來保存您的數據。

2

關於繼承範圍

問題app.js

$stateProvider 
    .state('dashboard.vendor.add',{ 
     views:{ 
      '@': { 
       templateUrl: 'templates/vendor/forms/basic.html', 
       controller : 'vendorCtrl' 
      } 
     } 
    }) 


    .state('dashboard.vendor.add.areas',{ 
     views:{ 
      '@': { 
       templateUrl: 'templates/vendor/forms/areas.html', 
       controller : 'vendorCtrl' 
      } 
     } 
    }) 

控制器

function vendorCtrl($scope) { 
    $scope.data= 'hello world'; 
} 

areas.html

<input type-"text" ng-modal="data"/> <label name="name">{{data}}</label>

basic.html

<label name="name">{{data}}</label>

在$ scope.data這種情況下值將顯示在areas.html,但未能在基本顯示的值。儘管擁有相同的控制器,但仍可使用html。 因爲範圍屬性只在狀態視圖嵌套時才沿着狀態鏈繼承。範圍屬性的繼承與嵌套我們的狀態和與嵌套視圖無關。

+0

這就是OK,我們需要建立一個工廠,但我的疑問是,爲什麼在同一個控制器$ scope.xyz給空值其它視圖 –

+0

您可以使用不同的看法$ scope.xyz在同一個控制器 –

+0

是肯定的,但我們可以但在$ scope.xyz的其他視圖中的值顯示爲空,除非直到我使用$ rootScope –