更新
下面的答案或评论都没有帮助,我希望有人会给我正确的答案.
下面的答案或评论都没有帮助,我希望有人会给我正确的答案.
当我把这个url放在我的浏览器下面 – 它需要我的水果视图和完美的工作,
http://localhost:53052/AppTest.aspx#/fruits
但是当我去家庭视图并点击按钮,并尝试导航到“水果”视图,然后它重定向到http:// localhost:53052 / AppTest.aspx#/ routeNotFound
但是当我点击浏览器的返回按钮,它会返回到果实视图,如果我再次单击它将返回到主视图.
所以这里是树视图中会发生什么,
– >点击主页视图按钮(应导航到水果视图,但它转到routeNotFound视图)
– >当我点击浏览器上的返回按钮,它会进入水果视图,然后如果我再次点击回到主页视图
这是我的路线,
(function () { 'use strict'; var app = angular.module('fruitApp'); app.constant('routes',getRoutes()); app.config(['$routeProvider','routes',routeConfigurator]); function routeConfigurator($routeProvider,routes) { routes.forEach(function (route) { $routeProvider.when(route.url,route.config); }); $routeProvider.otherwise({ redirectTo: '/routeNotFound' }); } function getRoutes() { return [ { url: '/home',config: { templateUrl: 'App/templates/home.html',} },{ url: '/fruits',config: { templateUrl: 'App/templates/fruits.html',} } ]; } })();
主视图(我只用它来加载模块和加载其他视图)
<div data-ng-app="fruitApp"> <div data-ng-view=""> </div> </div>
家庭景观
<div data-ng-controller="home as vm"> <div data-ng-click="vm.goToFruits()">click Me!</div> </div>
家庭控制器
(function () { 'use strict'; var controllerId = "home"; angular.module('fruitApp').controller(controllerId,['$location','datacontext',home]); function home($location,datacontext) { var vm = this; vm.goToFruits = goToFruits; function goToFruits() { $location.path('/fruits'); } }; })();
水果观
<div data-ng-controller="fruits as vm"> fruits </div>
水果控制器
(function () { 'use strict'; var controllerId = "fruits"; angular.module('fruitApp').controller(controllerId,fruits]); function fruits($location,datacontext) { var vm = this; }; })();
我正在跟踪这个项目,所以像我这样的定义模块不应该是一个问题,如果我没有错过任何概念?
编辑
我尝试改变路由配置和控制器中的一些代码来使用ui-route,而现在它需要我到果实视图(像以前一样),但它不是将我重定向到“否”的路由,但它仍然将URL更改为/ routeNotFound ..
更新
最后我使用href和ng-href来切换视图.
解决方法
你的例子中有很多“绒毛”.我已经删除了一点,你应该可以看到
plunkr demo here – 它有助于看看你是否运行没有框架 –
http://run.plnkr.co/plunks/40eDlZfZQnAJRWxeg1ge/#.
对我来说,看起来它的工作原理很好.我可以点击文本导航到“水果”控制器,我在浏览器中点击“返回”按钮返回到“主页”.
关于你的代码的一些事情:
>你的app.module需要用app.module(‘fruitsApp’,[‘ngRoute’])声明;以确保依赖关系被加载.
>我删除了你的示例代码不需要知道的’datacontext’等
>我在路由中使用基本模板而不是templateUrls.
>我将默认路由重定向到’/ home’ – 这在你的上下文中是否有意义?