我已经在.FormulaLocal
完成了很多次,但不知道pure angular.js with ng-router
我想在父作用域上有一些$ ionic using ui-router
属性/对象,我可以从子作用域读取和修改它们,它们可以反映每个地方(没有工厂),以便刷新国家之间的数据松散,我有共同的地方保持它
我尝试了什么:
我首先尝试将整个应用程序路由包含在div
中scope
这没有帮助,所以我将app状态设置为<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;
,我可以正确访问它(在所有状态下显示21个),但是appCtrl
(cant modify it
)它不反映
虚拟cotrollers
appctrl(父):
$scope.selectedForm=22;
formCtrl(子):
.controller('appCtrl', function ($scope) {
$scope.InspectedForms = [];
$scope.currentForm= {}
$scope.selectedForm=21;
})
答案 0 :(得分:3)
答案很明显,我怎么忘了dot rule
浪费了我几个小时想发布它,好像任何其他人都坚持这种问题
更改仅反映在objects and array
和not 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是有关继承的详细信息