3 回答

TA貢獻(xiàn)1827條經(jīng)驗(yàn) 獲得超8個(gè)贊
應(yīng)用程序路由器指定導(dǎo)航MyController
如下:
$routeProvider.when('/', { templateUrl: 'pages/home.html', controller: MyController });
但我也有這個(gè)home.html
:
<div data-ng-controller="MyController">
這消化了控制器兩次。data-ng-controller
從HTML中刪除屬性解決了問題?;蛘?,該controller:
屬性可能已從路由指令中刪除。
使用選項(xiàng)卡式導(dǎo)航時(shí)也會(huì)出現(xiàn)此問題。例如,app.js
可能包含:
.state('tab.reports', { url: '/reports', views: { 'tab-reports': { templateUrl: 'templates/tab-reports.html', controller: 'ReportsCtrl' } } })
相應(yīng)的報(bào)告選項(xiàng)卡HTML可能類似于:
<ion-view view-title="Reports"> <ion-content ng-controller="ReportsCtrl">
這也將導(dǎo)致控制器運(yùn)行兩次。

TA貢獻(xiàn)1825條經(jīng)驗(yàn) 獲得超4個(gè)贊
我剛剛完成了這個(gè),但問題與接受的答案不同。我真的把這個(gè)留給了我未來(lái)的自我,包括我修復(fù)它的步驟。
檢查是否有任何不必要的包裝
ng-view
調(diào)用(我意外地留下了包含ng-view
我的實(shí)際內(nèi)容ng-view
。這導(dǎo)致三次調(diào)用我的控制器。)如果您使用的是Rails,則應(yīng)
turbolinks
從application.js
文件中刪除gem 。我浪費(fèi)了一整天才發(fā)現(xiàn)這一點(diǎn)。在這里找到答案。使用ng-app和bootstrap初始化應(yīng)用程序兩次。兩次對(duì)抗AngularJS執(zhí)行控制器
當(dāng)在指令的'link'-function中使用$ compile時(shí),整個(gè)元素也有自己的控制器定義,并通過(guò)ng-click等在模板中使用該控制器的回調(diào)。在這里找到答案。
- 3 回答
- 0 關(guān)注
- 556 瀏覽
添加回答
舉報(bào)