Angular JS 1.6路由

时间:2017-03-16 13:05:50

标签: angularjs routing

我正在尝试在角度js 1.6中进行路由,但是它给出了以下错误。默认情况下,主页已正确加载,但是当我尝试导航two.html时,它会抛出错误。

Error: [$compile:tpload] http://errors.angularjs.org/1.6.3/$compile/tpload?p0=views%2Fhome.html&p1=-1&p2=
at angular.js:38
at angular.js:19933
at angular.js:16843
at m.$digest (angular.js:17982)
at m.$apply (angular.js:18280)
at angular.js:1912
at Object.invoke (angular.js:5003)
at c (angular.js:1910)
at Pc (angular.js:1930)
at ue (angular.js:1815)

这是我的app.js代码

var app = angular.module("jasmineKarmaDemo", ["ngRoute"]);
app.config(['$routeProvider', function ($routeProvider) {
$routeProvider
    .when("/", {
        templateUrl: "views/home.html"
    })
    .when("/two", {
        templateUrl : "two.html"
    })
    .otherwise("/two", {
        templateUrl : "views/two.htm"
    })
}]);

这是HTML代码

<header>
        <div>
            <a href="#/">Home</a>
        </div>
        <div>
            <a href="#two">Two</a>
        </div>
    </header>

使用angular js 1.5版本可以正常工作。 我应该错过什么吗?提前谢谢。

2 个答案:

答案 0 :(得分:1)

我认为问题出在你的第二条路线“/ two”,模板网址是“two.html”,但根据其他路线,我假设你错过了“views /”部分,所以那个模板不存在。

另外,我认为你的情况会更好:

.otherwise({redirectTo:'/two'});

或者是那种不同的观点?

答案 1 :(得分:0)

在1.6版本中,网址以!为前缀 - migration guide

这样的事情:

<a ng-href="#!/url">link</a>