我正在使用$routeProvider
将我的所有应用页面路由到相关controllers
,但当两个routes
使用相同的controllers
时(即/ blog& /博客:id)如何根据当前function
初始化单独的route
。
因此,如果路由是/ blog我想在路由加载时初始化$ scope.loadPosts()。 如果路由是/ blog:id我想在路由加载时初始化$ scope.loadPost($ id)。
答案 0 :(得分:4)
你可以在这里做一些事情,但我的建议是通过解决路径来传递初始化函数。你可以这样做:
angular.module('test', ['ngRoute'])
.config(['$routeProvider',
function($routeProvider) {
$routeProvider
.when('/blog', {
controller: 'BlogController',
template: '<h1>Blog</h1>',
resolve: {
init: function() {
return function() {
console.log('Loading Blog');
}
}
}
})
.when('/blog/:id', {
controller: 'BlogController',
template: '<h1>Blog ID</h1>',
resolve: {
init: function() {
return function($route) {
console.log('Loading Blog Article ' + $route.current.params.id);
}
}
}
});
}
])
.controller('BlogController', ['$scope', '$route', 'init',
function($scope, $route, init) {
init($route);
}
]);
&#13;
<!DOCTYPE html>
<html ng-app="test">
<head>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.7/angular.min.js"></script>
<script src="https://code.angularjs.org/1.4.6/angular-route.js"></script>
</head>
<body>
<a href="#/blog">Go to Blog</a>
<a href="#/blog/2">Go to Article 2</a>
<div ng-view></div>
</body>
</html>
&#13;
其他一些选择是:
希望这段代码可以帮助您按照自己的决定开始正确的方向。
修改这里是link to a plunker,代码段似乎间歇性地表现错误
答案 1 :(得分:2)
执行此操作的简单方法是,在相应的a = srp(Ether() / IP(src="192.168.1.100",dst="8.8.4.4") /
UDP(sport=RandShort(),dport=53) /
DNS(rd=1,qd=DNSQR(qname="google.com",qtype="ALL",qclass="IN"),
ar=DNSRROPT(rclass=3000)),
timeout=1)
print len(a[0][0][0]), len(a[0][0][1])
中使用ng-init
。
template
HTML code:
angular.module('demo', ['ngRoute'])
.config(['$routeProvider',
function($routeProvider) {
$routeProvider
.when('/linkOne', {
controller: 'LinkController',
template: '<h1 ng-init="functionOne()">Hello world</h1>'
})
.when('/linkTwo', {
controller: 'LinkController',
template: '<h1 ng-init="functionTwo()">Hello Stackoverflow</h1>'
});
}])
.controller('LinkController', ['$scope', function($scope) {
$scope.functionOne = function(){
console.log("Hello");
}
$scope.functionTwo = function(){
console.log("Hello world");
}
}]);