$ scope.data在角度js中具有相同控制器的其他视图中不起作用

时间:2016-09-07 07:18:24

标签: angularjs

app.js

我创建了多个具有相同控制器命名为vendorCtrl的视图,因为我们知道$ scope可以与特定控制器一起使用,我的问题是没有$ rootscope的帮助我如何在多个名为basic的视图之间共享数据,领域,身份

$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'       
                }
            }

        })

2 个答案:

答案 0 :(得分: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 中,但无法在 basic.html 中显示值,尽管具有相同的控制器。   因为范围属性仅在我们的状态视图嵌套时才继承状态链。范围属性的继承与我们的状态嵌套无关,也与视图的嵌套有关。

答案 1 :(得分:0)

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

另一方面,您可以使用可以保存数据的简单(getter / setter?)service