2015-06-09 22 views
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種方式

+0

你的控制器代碼是什麼樣的?我也不熟悉'md-select',但如果它提供'ng-change'屬性,你不必擔心自己設置手錶 – allienx

+0

是的,加入ng-change函數似乎可以解決這個問題。 。但仍然想知道如果我錯誤地連線 – nate

+0

如果你能夠訪問你在模板中的'MainCtrl'中聲明的'$ scope'數據,那麼我會說一切都可能正確設置,但我不想說肯定沒有看到你的控制器代碼和HTML與你的模板被放置到的'ui-view' – allienx

回答

0

嘗試你要使用它之前爲$ scope.name分配一個空值HTML

相關問題