[英]Get value of TextArea in AngularJS service
我有一个由控制器/视图使用的服务,当在视图中按下按钮时,它将触发服务中的方法。 该服务需要访问该视图内的TextArea的值。
目前我有:
服务范围内:
cancelClick: function() {
console.log(angular.element('commentText').val());
},
然后在视图中:
<textarea class="cancel-comment form-control" rows="8" id="commentText" placeholder="Notes" x-ng-model="cancelNotes"></textarea>
<div class="text-center">
<button type="button" class="btn btn-danger btn-cancel" id="cancel-order" ng-click="orderService.cancelClick()">{{'CANCEL THIS ORDER' | translate}}</button>
</div>
现在,单击按钮起作用了,但是console.log
打印了undefined
。
从视图中获取价值的正确方法是什么?
在角度服务中,不应具有访问权限,也不应操作DOM对象。 相反,您可以使用控制器绑定到视图,并仍然通过服务存储/操作文本:
标记
<div class="form-group">
<h3 class="text-success">Test Area</h3>
<textarea class="form-control" rows="8" id="commentText" placeholder="Notes" ng-model="mainCtrl.text"></textarea>
</div>
<button type="button" class="btn btn-success" ng-click="mainCtrl.saveToLocalStorage()">Save Changes</button>
JS
var app = angular.module('plunker', []);
app.controller('MainCtrl', ['tempDataStorageService', function(tempDataStorageService) {
var myCtrl = this;
myCtrl.text = angular.copy(tempDataStorageService.text);
myCtrl.localStorage = tempDataStorageService;
myCtrl.saveToLocalStorage = function () {
tempDataStorageService.text = angular.copy(myCtrl.text);
}
}]);
app.factory('tempDataStorageService', function() {
// The service object
var storage = this;
storage.text;
// return the service object
return storage;
});
commentText is Id
您认为的commentText is Id
。
cancelClick: function() {
console.log(angular.element('#commentText').val());
},
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.