2015-10-16 116 views
0

我正在製作一個帶有角度的動態網頁,主頁面的內容應該改變,但是爲了避免編寫太多的代碼,我決定讓它成爲通用的,但要知道什麼正在請求的內容類型,我需要從鏈接/按鈕用ng-click發送這個參數,這不會是一個問題,但是當我必須更改控制器時,我無法讀取參數。

ng-click="name='Name change'" 

在這裏,我試圖改變一個$ rootScope變量命名的名稱,我想

ng-click="$rootScope.name='Name change'" 

即使有服務功能,但看起來像不工作(我不知道太很多關於angularjs所以我嘗試)

ng-click="$service.cambiarTipo='Name change'" 

我犯了一個plunker http://plnkr.co/edit/1BN76SbUAHuOSHs02gpL?p=preview

如果喲你檢查控制檯日誌,你會發現它的變量是未定義的,很明顯,如果我從控制器中更改$ rootScope.name,我可以從其他控制器中看到它,但這沒有用,因爲我需要來自用戶的源而不是控制器。

如何我可以從html更改rootScope變量?

回答

1

這裏有一個使用兩個控制器之間的共享服務,根本不使用$ rootcope。 http://plnkr.co/edit/maKNHgVH20GxTJeCEveh

請注意,ng-click正在調用服務功能。我假設這個函數是用來改變名字的。

ng-click="service.cambiarTipo('Name change')" 
1

你真的不應該使用$ rootScope那麼多,更不用說從模板中修改它了。據說,你可以將$ rootScope賦值給$ scope變量,並像模板變量那樣從模板中訪問。 plunker

控制器: $scope.rs = $rootScope

模板: rs.name = 'Name Change'

我想重申,這是不是你應該做的,因爲它違背了角的方式。

+0

如果不是角度的方式,我能做些什麼來實現相同? –