我有一个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)的东西。 –