我正在尝试通过执行以下操作在我的模板angularjs中创建一个链接:
<a ng-href="/#!/content/[[value.id]]">[[key]]</a>
但我想知道自己是否有可能像symfony2那样做,例如:
的routing.yml
home_redirect:
path: /
defaults:
_controller: FrontendBundle:Controller:function
path: /home
permanent: true
options:
expose: true
通过以下方式在您的树枝模板中使用它:
<a href="{{ path('home_redirect')}}"> one link to home </a>
这真的非常有用,因为我不需要&#34;硬编码&#34;我所有的路线。
答案 0 :(得分:2)
为确保正确路由,您可以使用ui-router。
以下是plunker
的例子这是如何运作的:
1 - 按照github上的安装指南进行操作
2 - 写下您的州定义:
app.config(function($stateProvider, $urlRouterProvider){
//If no route match, you'll go to /index
$urlRouterProvider.otherwise('/index');
//my index state
$stateProvider
.state('index', {
url: '/index',
templateUrl: 'index2.html',
controller: 'IndexCtrl'
})
//the variable state depending on an url element
.state('hello', {
//you will be able to get name with $stateParams.name
url: '/hello/:name',
templateUrl: 'hello.html',
controller: 'HelloCtrl'
})
});
3 - 按州名写下链接:
//add this directive to an html element
//This will go to /index
ui-sref="index"
//This will go to /hello/
ui-sref="hello"
//This will go to /hello/ben
ui-sref="hello({name:'ben'})"
//This will go to /hello/{myname}
ui-sref="hello({name:myname})"
4 - 将参数输入您的控制器:
//inject $stateParams
app.controller('HelloCtrl', function($scope, $stateParams){
$scope.controller = "IndexCtrl";
//get the param name like this
$scope.name = $stateParams.name;
});
希望它有所帮助。还要记住,ui-router有一些非常强大的工具,比如resolve和嵌套状态/视图。你现在或以后可能都需要这些论文。
PS:如果plunker不起作用,只需将其分叉并再次保存。
答案 1 :(得分:1)
你可以这样做:
'superAdmin', 'admin', 'manage', 'managerModel1', 'managerModel2'
或
你可以这样做:
'use strict';
angular.module('AngularModule')
.config(function ($stateProvider) {
$stateProvider
.state('YourStateName', {
url: '/your/url',
views: {
'aViewName': {
templateUrl:'views/components/templates/yourTemplate.html',
controller: 'YourController'
}
},
resolve: {
}
});
});
// then in your controller
angular.module('AngularModule')
.controller('MyController',function($scope, $state){
$scope.goTo = function(){
$state.go('YourStateName');
}
}
);
//in your html make sure the <a> tag is in scope with the 'MyController'
<a ng-click='goTo'>[[key]]</a>
以这种方式绕过控制器,您仍然可以将逻辑放在状态
中指定的控制器中