1
我收到了一個非常奇怪的問題,其中$ state控制器的ui-view模板正在與$ rootScope而不是$ scope進行交互。
但它會在init時注入$ scope變量。
例如: 如果我有$ scope.name = 「測試」
,在我的模板
<input ng-model="name">
輸入將成功具有 「測試」 插入罰款。但是,當我有一個$ scope。$ watch(「name」)它不會觸發,而只有$ rootScope注意「name」會觸發...我是否錯誤地連接了我的路由?
我有一個主要的 「應用程序」 是獲取其主要依賴(我的組件):
angular.module('p1poc', ['ngAnimate', 'ngMaterial', 'ngWebSocket' ... 'myModule');
有問題的模塊 「MyModule的」:
angular.module('myModule', ['ui.router', 'infinite-scroll', 'pasvaz.bindonce'])
.config(['$stateProvider', function ($stateProvider) {
$stateProvider.state('search', {
url: '/search?query',
controller: 'MainCtrl',
templateUrl: 'main/main.html',
label: 'Search',
access: {free: true}
});
}])
,你可以看到,我我正在注入控制器,以及模板
我的模板,例如html元素是這樣的:
<md-select placeholder="Sort By" ng-model="orderBy">
<md-option value="_score" checked>Relevance</md-option>
<md-option value="citingsrcscount">Cited Count</md-option>
<md-option value="sortdate">Publication Date</md-option>
</md-select>
但正如我上面所述,ng模型更新$ rootScope.orderBy而不是$ scope.orderBy。
,但在初始時間,它被成功地從$ scope.orderBy獲取數據...只是不綁定2種方式
你的控制器代碼是什麼樣的?我也不熟悉'md-select',但如果它提供'ng-change'屬性,你不必擔心自己設置手錶 – allienx
是的,加入ng-change函數似乎可以解決這個問題。 。但仍然想知道如果我錯誤地連線 – nate
如果你能夠訪問你在模板中的'MainCtrl'中聲明的'$ scope'數據,那麼我會說一切都可能正確設置,但我不想說肯定沒有看到你的控制器代碼和HTML與你的模板被放置到的'ui-view' – allienx