我正在学习AngularJS,正在研究更深入的ToDo应用程序。我遇到了一个问题,试图限制使用角度访问URL或“路线”。限制对routeprovider的路由访问,除非已设置变量
当你在我的机器上打开我的开发网址(todo.ang)时,它会带你到todo.ang /#/ home,在这个视图中你可以看到每个关联的类别。当你点击一个类别时,我会调用$ scope.goToCategory函数(见我的JS小提琴),它为我的firebase设置了一个变量,EG(类别= cat,cat有一个“feed”和“play”然后ref也重定向你/#/ todo。这工作正常。
我的问题是,如果todoRef变量仍未定义,我不希望用户能够访问/#/ todo。但是,即使在调用了$ scope.goToCategory并将todoRef设置为firebase URL之后,似乎也不会调用routerprovider,以知道todoRef已设置为不同的值,因此它总是强制您返回到/#/ home。
代码:
var todoRef = undefined;
if (todoRef !== undefined) {
$routeProvider.when('/todo', {
templateUrl: 'views/todo.html',
controller: 'TodoCtrl'
});
}
$scope.goToCategory = function(catId) {
test = catId;
todoRef = new Firebase("URL HERE");
$location.path('/todo');
}
我并没有包括整个代码文件,但如果多数民众赞成有必要,我可以做到这一点。
您需要可以重现该问题在小提琴或交的全部代码。你的小提琴现在是无用的。 – 2014-11-06 22:12:33
我的applogies,继承人一个现场示例 http://charliebois.com/angular/ 并更新了我的app.js的提琴在哪里发生的一切。 http://jsfiddle.net/89q4vL6p/1/ – Kcharle 2014-11-06 22:46:51