它通过ui-sref调用时有效
<a class="button" ui-sref="main.create">
Run Code Online (Sandbox Code Playgroud)
但是当使用ng-click和$ stage.go调用它时,它被调用并呈现页面但我的$ urlRouterProvider.otherwise将再次覆盖DOM.我在逐步调试时注意到了它.它可能认为main.create是一个不存在的url.
这是ng-click的代码和功能.
<a href="#" ng-click="create()">Create Object</a>
Run Code Online (Sandbox Code Playgroud)
这是create()函数
$scope.create = function() {
$state.go('main.create');
};
Run Code Online (Sandbox Code Playgroud)
它$state.go('main')在ng-click="create()"使用时调用.但在调用之前$state.go('main'),我在DOM中看到了正确的main.create页面呈现.我编写了"IF"语句来处理不存在的url,以便将它们重定向回主页.这是我的config.js.
.state('main', {
url: '/',
views: {
'@': {
templateUrl: 'app/main/main.html',
controller: 'MainController'
},
'content@main' : {
templateUrl: 'app/main/main.display.html'
}
}
})
.state('main.create', {
url: '/create',
views: {
'content@main' : {
templateUrl: 'app/main/main.create.html'
}
}
})
$urlRouterProvider.otherwise(function ($injector) {
var Session = $injector.get('Session');
var $state = $injector.get('$state');
if (Session.isAuthenticated()) {
$state.go('main'); // <-- this is …Run Code Online (Sandbox Code Playgroud)