这是我正在尝试完成的一个jsfiddle 示例。
我正在尝试构建一个美国电话号码输入,其中视图显示为 (333) 555-1212,但模型绑定到数字整数 3335551212。
我的目的是添加自定义验证器,NgModelController这就是为什么我有require: ng-model;有没有隔离范围和的更简单的解决方案NgModelController,但我需要两者。
您会在控制台中看到一个即时错误:Error: Multiple directives [ngModel, ngModel] asking for 'ngModel' controller on: <input ng-model="user.mobile numeric" name="telephone" type="tel">--以为我在这里使用了隔离范围...
<form class="form-horizontal" role="form" name="addCreditoBuscar" id="addCreditoBuscar" ng-controller="AddCreditoAppController">
<div class="form-group">
<label class="col-sm-2 col-sm-2 control-label">Buscar</label>
<div class="col-sm-10">
<input type="text" class="form-control" name="buscar" ng-model="addCreditoBuscar.buscar" ng-required="true" placeholder="Buscar por cedula, nombre o apellido">
<span class="help-block" ng-show="addCreditoBuscar.buscar.$error.required">Este campo es requerido es requerido.</span>
</div>
</div>
</form>
Run Code Online (Sandbox Code Playgroud)
这是我的输入文本代码,但结果是这个 - http://prntscr.com/73otmc
input object object-object-mapping angularjs angularjs-ng-model
基本上,我希望能够将ng-model从父指令传递给子指令.我可以只使用双向绑定值,但是后来我无法在子元素的父指令中使用ng-change.我也可以使用ng-click,但这不适用于非单击更改(例如文本区域而不是复选框).所以我想知道是否有一种方法允许自定义指令具有类似于输入,按钮,文本区域和其他html元素的ng-model/ng-change对.我想避免使用emits,ons,watch,传递回调等.我只是希望能够在自定义指令而不是输入上执行[input type ="checkbox"ng-model ="ngModel"].
父模板
<child ng-model="x" ng-change="x()"></toggle>
Run Code Online (Sandbox Code Playgroud)
家长指令
$scope.x = function() {console.log('hi')};
Run Code Online (Sandbox Code Playgroud)
儿童模板
<div>
<input type="checkbox" ng-model="ngModel">
</div>
Run Code Online (Sandbox Code Playgroud)
儿童指令?
$scope.ngModel = $element.controller('ngModel');
Run Code Online (Sandbox Code Playgroud)
我的角度版本是1.4.8 btw.
谢谢 :)
angularjs angularjs-directive angularjs-ng-change angularjs-ng-model angularjs-components
我已经申请ng-model-options上input有如下配置
ng-model-options="{updateOn:'default blur',debounce:{default:1000,blur:0}}"
并且根据应用的配置,ng-model-options我期待事件的更新ng-model's值,ng-blur但尽管已0为blur事件设置了debounce值,但它不会返回新值.
*注意:只有当用户在default去抖动时间内聚焦时才会出现此问题,即1000
HTML:
<input type="text" ng-model="myname" ng-blur="onBlur(myname)" ng-model-options="{updateOn:'default blur',debounce:{default:1000,blur:0}}">
<input type="text" ng-model="output"/>
Run Code Online (Sandbox Code Playgroud)
JS:
$scope.myname = "Yogesh";
$scope.output = "";
$scope.onBlur = function(a){
$scope.output = a;
}
Run Code Online (Sandbox Code Playgroud)
Plunker链接:https://embed.plnkr.co/XJMUUD/
为什么去抖不起作用?如果我做错了,请纠正我!
提前致谢 :)
我也给出了我的问题的答案!让我知道它的使用灵活性以及它如何有助于减少事件摘要周期.