我必须使用AngularJS获取输入文本的值,但不使用Controller。 我怎么能得到这个价值? 我看到这个帖子,但使用.controller link post
答案 0 :(得分:1)
您可以使用此代码,使用angular.element:
angular.element(document.querySelector('#your_input_tag_id')).val();
或者,简单的jQuery:
$('#your_input_tag_id').val();
答案 1 :(得分:0)
你应该在你的指令中执行你的DOM操作,而不是查询DOM中的元素(不是非常有角度的,请参阅我如何在AngularJS中思考“如果我有jQuery背景?)您可以在链接功能中使用该元素。
所以在你的myDirective中
return {
link: function (scope, element, attr) {
element.html('Hello world');
}
}
如果你必须在指令之外执行查询,那么就可以在现代浏览器中使用querySelectorAll
angular.element(document.querySelectorAll("[my-directive]"));
$('#your_input_tag_id').val();
但是你需要使用jquery来支持IE8和后退
angular.element($("[my-directive]"));
答案 2 :(得分:0)
使您的输入成为模型,并且该值始终可用作模型
<input type="text" ng-model="myModelName">
然后您的值将作为myModelName
在模块范围内可用console.log('value = ' + $scope.myModelName);
,如果你试图从模块或应用程序范围之外的其他地方获取值,那么你可能做错了而不是有角度的方式,最好是使用控制器或链接功能,即使它是主要的应用程序控制器或链接功能,你可以很好地回避任何不使用控制器的要求(这听起来像一个坏的或误解的要求)。