【发布时间】:2016-07-20 13:07:03
【问题描述】:
我正在尝试为一个小的输入字段编写一个指令,该输入字段只接受文本并将符号从 searchglass 动态更改为 X,如果里面有文本并在单击时删除该文本。 因此,我将必要的 HTML 添加到输入中,但可以让本机 ng 指令运行。我对角度和希望很陌生,有人可以提供帮助。有一些类似的问题,但没有一个真正有帮助。
angular.module('myApp')
.directive('searchBox', function ($compile) {
return {
restrict: 'A',
scope: {
ngModel: '='
}
link: function(scope, element, attrs) {
var appendix = angular.element(
'<span class="input-group-addon" ng-click="ngModel = none">' +
' <i ng-hide="ng-model" class="fa fa-search"></i>' +
' <i ng-show="ng-model" class="fa fa-close"></i>' +
'</span>');
var wrapper = angular.element(
'<div class="input-group input-group-sm search-box-custom"></div>'
);
element
.wrap(wrapper)
.after(appendix);
element.removeAttr("search-box"); //prevent endless compile loop
element.removeAttr("data-search-box"); //prevent endless compile loop*/
$compile(appendix)(scope);
}
};
});
ng-model 在输入字段中定义
<input search-box
type="text"
ng-model-options="{debounce:1000}"
ng-model="inputValue"
placeholder="Hier Tippen..." />
编辑:指令应该有一个连接到父范围的自己的范围,但不应该相同,因为在其他情况下父值可能不同
【问题讨论】:
-
请在使用该指令的地方分享您的 HTML。此外,您最好提供一个 jsFiddle 或 plunker。
-
添加了输入。 'inputValue' 本身在相应的控制器中有它的表示并且工作正常。
标签: javascript angularjs angularjs-directive