更改路由不刷新数据,给出:areq错误

时间:2014-02-09 22:17:33

标签: javascript angularjs angularjs-scope angularjs-routing

在我的AngularJS应用程序中,我的路线如下:

.when('/:project/:page', {
    templateUrl: '/ui-editor/editor',
    controller: 'EditorCtrl'
})

在视图中,我有一个看起来像这样的链接:

<a href="/{{currentProjectId}}/{{currentPageId + 1}}">Next page</a>

当我点击我的应用中的该链接时,浏览器中的网址会正确更改(例如/myproject/1更改为/myproject/2),但收到错误Error: [ng:areq] Argument 'scope' is required。错误引用的行是console.log语句:

socket.on('ws:init-data', function(data) {
    console.log('on ws:init-data', data);
    // Handle incoming data from server
    //...
});

如果我刷新浏览器,则会加载/myproject/2所需的正确数据。

1 个答案:

答案 0 :(得分:0)

使用ng-href更好。它可以避免在角度解析之前点击链接。

<a ng-href="/{{currentProjectId}}/{{currentPageId + 1}}">Next page</a>

我不知道这个错误的确切原因,但我有一个建议:

使用$ location更改您的网址。

你可以在dev_guide上看到:

我应该何时使用$ location?

任何时候您的应用程序需要对当前URL中的更改做出反应,或者您想要在浏览器中更改当前URL。

http://docs.angularjs.org/guide/dev_guide.services.$location