3 回答

TA貢獻1847條經(jīng)驗 獲得超7個贊
I?創(chuàng)建工作柱塞,演示如何使用$scope
還有UI-路由器。
狀態(tài)定義不變:
$stateProvider????//?States ?.state("main",?{ ??????controller:'mainController', ??????url:"/main", ??????templateUrl:?"main_init.html" ??})?? ??.state("main.1",?{ ??????controller:'mainController', ??????parent:?'main', ??????url:"/1", ??????templateUrl:?'form_1.html' ??})?? ??.state("main.2",?{ ??????controller:'mainController', ??????parent:?'main', ??????url:?"/2", ??????templateUrl:?'form_2.html' ??})
但是每個州都有不同的控制器。為什么?因為每個view
每一個國家獲得new
?實例定義的controller
..所以既然我們mainController
像下面這樣,我們可以確定,如果我們導航到狀態(tài)'main.2'
它將被實例化兩次。
controller('mainController',?function?($scope)?{ ??$scope.Model?=?$scope.Model?||?{Name?:?"xxx"};})
但是我們能看到的這里,我們檢查一下$scope.Model
已經(jīng)存在了.。如果不是(母國)我們實例化它新意?{Name : "xxx"}
.
嗯,我的意思是:只有父國會在$scope.Model
..其他人都會把它填滿的。多么,怎樣?答案是:
僅通過視圖層次結構進行范圍繼承
請記住,只有在狀態(tài)視圖嵌套的情況下,范圍屬性才會向下繼承。范圍屬性的繼承與狀態(tài)嵌套無關,與視圖(模板)嵌套有關。
您完全可能擁有嵌套狀態(tài),其模板在站點中的各種非嵌套位置填充UI視圖。在此場景中,不能期望在子狀態(tài)視圖中訪問父狀態(tài)視圖的作用域變量。
因此,正如文件中所述。因為我們的子視圖嵌套在父視圖中,所以范圍是繼承的。
理解Scopes
在AngularJS中,子作用域通常是從其父作用域繼承的。
...有“.”在您的模型中,將確保原型繼承正在發(fā)揮作用。
//?So,?use<input?type="text"?ng-model="someObj.prop1">?//?rather?than<input?type="text"?ng-model="prop1">.
僅此而已。我們從UI-Router
視圖和角度范圍,因為我們巧妙地使用了引用類型(Model
),即確實有'.'
點入ng-model
定義-我們現(xiàn)在可以共享數(shù)據(jù)
注:有點“?!痹?code>ng-model="Model.PropertyName簡單地說,有一個reference
對象Model {}
擁有一些財產:PropertyName

TA貢獻2080條經(jīng)驗 獲得超4個贊
你可以通過整個范圍$rootScope..如果您只需要范圍的一部分,UI-路由器有一個自定義數(shù)據(jù)特征。
這是如何做一個多步驟的形式。我需要路線包含關于他們在流程中的步驟的信息。
首先,我有一些UI路由器的路由:
??//?Sign?UP?routes ??.state('sign-up',?{ ????abstract:?true, ????url:?'/sign-up', ????controller:?'SignupController', ????templateUrl:?'sign-up/index.html', ??}) ??.state('sign-up.start',?{ ????url:?'-start', ????templateUrl:?'sign-up/sign-up.start.html', ????data:?{?step:?0,?title:?'Welcome?to?Mars!',?}, ??}) ??.state('sign-up.expertise',?{ ????url:?'-expertise', ????templateUrl:?'sign-up/sign-up.expertise.html', ????data:?{?step:?1,?title:?'Your?Expertise'}, ??})
注意事項:
- 這個
元素在每條路徑中。data
- 這個
州abstract
..這是這個多步表單的唯一控制器。這個SignupController
不是必需的,但是對于這個用例來說是有意義的。abstract
SignupController.js
angular.module('app').controller('SignupController',?function($scope,?$state)?{ ??$scope.state?=?$state;});
在這里,我們得到了UI-路由器的$state
穿上它$scope
以下是主要模板“登錄/index.html”,如下所示:
<h2>{{state.current.data.title}}</h2><div>This?is?a?multi-step-progress?control?{{state.current.data.step}}</div><form?id="signUpForm"?name="signUpForm"?novalidate> ??<div?ui-view></div></form>
子模板可以是他們喜歡的任何東西。

TA貢獻1827條經(jīng)驗 獲得超9個贊
.state("main", { controller:'mainController', abstract: true, url:"/main", templateUrl: "main_init.html" }) .state("main.1", { controller:'mainController1', parent: 'main', url:"/1", templateUrl: 'form_1.html' }) .state("main.2", { controller:'mainController2', parent: 'main', url: "/2", templateUrl: 'form_2.html' })
添加回答
舉報