angular 中的路由选择与 ui 路由
Routing wierdness in angular with ui-routing
另一个问题伙计们:)
如果我在我的路由中将 templateUrl 留空,范围是可查询的但没有模板显示。但是,如果我像在链接的 plunker 项目中那样编写它,它会使链接不可点击 :( 但只是对于 li > a 元素......同样在 plunker 中我无法使其可行,不知道为什么......有人吗?
http://plnkr.co/edit/VKhhcSmepMTxBT7R5AuO
这里是 ap.js 本身的帮助
(function(){
var portApp = angular.module('portApp', ['ui.router']);
portApp.config(function($stateProvider, $urlRouterProvider, $locationProvider) {
$urlRouterProvider.otherwise('/home');
$stateProvider
.state('root', {
url: '/home',
abstract: true,
templateUrl: 'views/listView.html',
controller: 'ListController'
})
.state('home', {
url: '/home',
templateUrl: 'views/listView.html',
controller: 'ListController'
})
.state('about', {
url: '/about',
templateUrl: 'views/resumeView.html'
})
.state('items', {
url: '/items/:itemLink',
templateUrl: 'views/itemView.html',
controller: 'ItemController'
});
$locationProvider.html5Mode(true);
});
portApp.factory("workFactory", function() {
var works = [
{
Title: "Sprite",
subTitle: "",
Link: "sprite",
Thumbnail: "img/portfolio02.png",
Image: "img/ismont.png"
},
{
Title: "Pepsi",
subTitle: "Kristályvíz",
Link: "pepsi",
Thumbnail: "img/portfolio03.png",
Image: "img/sanofimont.png"
}
];
return {
list: function() {
return works;
},
selected: function(detPath) {
selected = works.filter(function(work) {
return work.Link == detPath;
});
return selected;
}
};
});
portApp.controller("ListController", ["$scope", "workFactory",
function($scope, workFactory) {
$scope.allWorks = workFactory.list();
}
]);
portApp.controller("ItemController", ["$scope", "workFactory", "$stateParams",
function($scope, workFactory, $stateParams) {
var detPath = $stateParams.itemLink;
//$scope.selectedWork = workFactory.selected(detPath);
$scope.selectedWork = workFactory.selected(detPath)[0];
alert($scope.selectedWork);
}
]);
})();
我不完全确定你想用你的根状态做什么,所以我按照我的方式使用它......
$stateProvider
.state('root', {
abstract: true,
template: '<div ui-view=""></div>',
resolve: {
somedata: function(){return {}}
}
})
.state('home', {
parent: 'root',
url: '/home',
templateUrl: 'listView.html',
controller: 'ListController'
})
.state('about', {
parent: 'root',
url: '/about',
templateUrl: 'resumeView.html'
})
.state('items', {
parent: 'root',
url: '/items/:itemLink',
templateUrl: 'itemView.html',
controller: 'ItemController'
});
我们可以看到,super parent 状态 'root'
没有定义 url,它确实包含模板 (其中所有 children 被注入)
另一方面,每个州现在都将其 parent 声明为 'root'。这将意味着,所有州都可以访问决议或任何其他后来应用于根的常见内容。
如何影响所有状态的简单方法..希望这能有所帮助。也许查看更多详细信息:
另一个问题伙计们:) 如果我在我的路由中将 templateUrl 留空,范围是可查询的但没有模板显示。但是,如果我像在链接的 plunker 项目中那样编写它,它会使链接不可点击 :( 但只是对于 li > a 元素......同样在 plunker 中我无法使其可行,不知道为什么......有人吗? http://plnkr.co/edit/VKhhcSmepMTxBT7R5AuO
这里是 ap.js 本身的帮助
(function(){
var portApp = angular.module('portApp', ['ui.router']);
portApp.config(function($stateProvider, $urlRouterProvider, $locationProvider) {
$urlRouterProvider.otherwise('/home');
$stateProvider
.state('root', {
url: '/home',
abstract: true,
templateUrl: 'views/listView.html',
controller: 'ListController'
})
.state('home', {
url: '/home',
templateUrl: 'views/listView.html',
controller: 'ListController'
})
.state('about', {
url: '/about',
templateUrl: 'views/resumeView.html'
})
.state('items', {
url: '/items/:itemLink',
templateUrl: 'views/itemView.html',
controller: 'ItemController'
});
$locationProvider.html5Mode(true);
});
portApp.factory("workFactory", function() {
var works = [
{
Title: "Sprite",
subTitle: "",
Link: "sprite",
Thumbnail: "img/portfolio02.png",
Image: "img/ismont.png"
},
{
Title: "Pepsi",
subTitle: "Kristályvíz",
Link: "pepsi",
Thumbnail: "img/portfolio03.png",
Image: "img/sanofimont.png"
}
];
return {
list: function() {
return works;
},
selected: function(detPath) {
selected = works.filter(function(work) {
return work.Link == detPath;
});
return selected;
}
};
});
portApp.controller("ListController", ["$scope", "workFactory",
function($scope, workFactory) {
$scope.allWorks = workFactory.list();
}
]);
portApp.controller("ItemController", ["$scope", "workFactory", "$stateParams",
function($scope, workFactory, $stateParams) {
var detPath = $stateParams.itemLink;
//$scope.selectedWork = workFactory.selected(detPath);
$scope.selectedWork = workFactory.selected(detPath)[0];
alert($scope.selectedWork);
}
]);
})();
我不完全确定你想用你的根状态做什么,所以我按照我的方式使用它......
$stateProvider
.state('root', {
abstract: true,
template: '<div ui-view=""></div>',
resolve: {
somedata: function(){return {}}
}
})
.state('home', {
parent: 'root',
url: '/home',
templateUrl: 'listView.html',
controller: 'ListController'
})
.state('about', {
parent: 'root',
url: '/about',
templateUrl: 'resumeView.html'
})
.state('items', {
parent: 'root',
url: '/items/:itemLink',
templateUrl: 'itemView.html',
controller: 'ItemController'
});
我们可以看到,super parent 状态 'root'
没有定义 url,它确实包含模板 (其中所有 children 被注入)
另一方面,每个州现在都将其 parent 声明为 'root'。这将意味着,所有州都可以访问决议或任何其他后来应用于根的常见内容。
如何影响所有状态的简单方法..希望这能有所帮助。也许查看更多详细信息: