javascript – 从Angular指令获取输入字段的值
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – 从Angular指令获取输入字段的值,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1706字,纯文字阅读大概需要3分钟。
内容图文
我在this answer中使用指令在输入字段中按下回车键时运行一个函数.
如何将输入字段element.val()的值传递给指令调用的函数?或者将输入字段元素传递给函数,以在检索后清除该值.
HTML
<input type="text" ng-enter="newField()" />
JS
app.directive('ngEnter', function() {
return function(scope, element, attrs) {
element.bind("keydown keypress", function(event) {
if(event.which === 13) {
element.val(); // value of input field
scope.$apply(function(){
scope.$eval(attrs.ngEnter); // passed to this function
});
event.preventDefault();
}
});
};
});
解决方法:
你可以这样做:
var func = scope.$eval(attrs.ngEnter);
func();
并让控制器处理值逻辑.请参阅下面的代码. Live demo (click).
另外,我不建议在自定义指令前加上ng.我建议你将自己的前缀作为命名空间. ng是Angular的核心.在我的例子中,我使用的是my-enter而不是ng-enter.
样本标记:
<input
type="text"
ng-model="foo"
my-enter="myFunc"
placeholder="Type stuff!"
>
<p ng-repeat="val in cachedVals track by $index">{{val}}</p>
JavaScript的:
var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope) {
$scope.cachedVals = [];
$scope.foo = '';
$scope.myFunc = function() {
$scope.cachedVals.push($scope.foo);
$scope.foo = '';
};
});
app.directive('myEnter', function() {
return function(scope, element, attrs) {
element.bind("keydown keypress", function(event) {
if(event.which === 13) {
scope.$apply(function(){
var func = scope.$eval(attrs.myEnter);
func();
});
event.preventDefault();
}
});
};
});
这是一个具有隔离范围的示例 – 您不需要$eval.
app.directive('myEnter', function() {
return {
scope: {
func: '=myEnter'
},
link: function(scope, element, attrs) {
element.bind("keydown keypress", function(event) {
if(event.which === 13) {
scope.$apply(function(){
scope.func();
});
event.preventDefault();
}
});
}
};
});
内容总结
以上是互联网集市为您收集整理的javascript – 从Angular指令获取输入字段的值全部内容,希望文章能够帮你解决javascript – 从Angular指令获取输入字段的值所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。