該data : {}
設置是靜態的。
看到類似:
如果你想要一些動態特徵利用resolve : {}
一些鏈接&關於解決例子和Q
EXTEND:一個簡單的(真的很幼稚,但工作)例如如何使用resolve
和$rootScope
管理瀏覽器的標題(check it here):
$stateProvider
.state('home', {
url: "/home",
templateUrl: 'tpl.html',
resolve: {
'title': ['$rootScope', function($rootScope){
$rootScope.title = "Other title";
}],
}
})
.state('parent', {
url: "/parent",
templateUrl: 'tpl.html',
resolve: {
'title': ['$rootScope', function($rootScope){
$rootScope.title = "Title from Parent";
}],
}
})
.state('parent.child', {
url: "/child",
templateUrl: 'tpl.html',
controller: 'ChildCtrl',
resolve: {
'titleFromChild': ['$rootScope', function($rootScope){
$rootScope.title = "Title from Child";
}],
}
})
而且這可能是HTML
<!DOCTYPE html>
<html ng-app="MyApp" ng-strict-di>
<head>
<title>{{title}}</title>
試一試here
這裏的挑戰是 - 什麼對導航執行從子到父,但它可以通過移動設置到控制器,並與$scope.$on('detsroy'
工作要做......
這裏是adjusted plunker
.state('parent.child', {
url: "/child",
templateUrl: 'tpl.html',
controller: 'ChildCtrl',
// no resolve, just controller fills the target
})
.controller('ChildCtrl', ['$rootScope', '$scope', function ($rootScope, $scope) {
var title = $rootScope.title;
$rootScope.title = "Title from Child";
$scope.$on('$destroy', function(){$rootScope.title = title});
}])
你想把'slug'放在你的瀏覽器標題上嗎?但那麼其他州的標題是什麼呢? –