我有一個textarea在我的HTML這樣的:AngularJS - 控制器之間的共享範圍值
<textarea ng-model="commentBox"></textarea>
要訪問此我只是在我的控制器使用「$ scope.commentBox」。但我的問題是,我如何訪問不同的控制器內相同的評論框?
我有一個工廠/服務設置爲此目的,但我無法弄清楚如何獲得commentBox值在那裏,爲我的其他控制器使用它。
在我的工廠中,我有一個對象var saved = {}
,我想添加一個名爲「comment」的屬性,並在textarea中包含任何值。像這樣saved.comment = commentbox
然後從另一個控制器訪問該值。
我在Angular上還是個新手,並試圖將參數中的範圍信息發送給facory。
var saved = {};
factory.addComment = function (commentbox) {
saved.comment = commentbox
}
然後讓我的控制器發送按鈕上點擊範圍的信息,
$scope.testFunction = function() {
myFactory.addComment($scope.commentBox);
}
但是,是的,沒有工作了。
請注意,我需要這個在工廠內工作,而不是在HTML中使用另一個ng-controller。
是否有任何理由不能做ng-Change = factoryProduct.addComment(commentBox),其中factoryProduct是Controller從Factory創建的實例?我假設你說你使用的工廠是這樣的http://www.sitepoint.com/tidy-angular-controllers-factories-services/ –
不熟悉ng-change,從來沒有使用它。但我有一個路徑,可以控制哪些控制器用於什麼html。我在第一頁有ng-model,我需要在我的頁面2上獲得它的價值。爲此,我嘗試將控制器1的值放入工廠,因此控制器2可以訪問它。 – qua1ity
我認爲你只需要像ng-change =「vm.addComment(commentBox)」這樣的東西,其中vm.addComment做類似yourService.setCurrentComment(newValue)的東西。 –