0
产生我有指令设置表格的一些值如何防止NG-模型覆盖由指令
lightconsole.directive("injectSession", function() {
return function (scope, element, attrs) {
var paramInput = angular.element(element).find("input")
if (paramInput) {
var paramName = scope.param.name.toLowerCase();
var sessHolder = angular.element("#user_session");
if (paramName === "session" || paramName == "sessionid") {
paramInput.val(sessHolder.val());
sessHolder.bind("change", function (session) {
paramInput.val(sessHolder.val());
});
}
}
}
});
然后我创建了一个form
与ng-repeat
输入文本的价值:
<form ng-submit="callFun()">
<table class="materail_input_block">
<thead>
</thead>
<tr ng-repeat="param in fun.operationArguments" inject-session>
<td>{{param.type}}</td>
<td>{{param.name}}</td>
<td><input name="{{param.name}}"
class="form-control materail_input" type="text"
placeholder="enter value"/></td>
</tr>
</table>
<input type="submit" value="Call"/>
</form>);
在这种情况下,如果其中一个元素被命名为session,则一切正常,值表单隐藏输入被设置为输入值,但是当我将ng-model
添加到input
元素时,值将被删除。
删除paramInput并使用范围,如'scope.myModel = sessHolder.val()',并在输入上添加'ng-model =“myModel”' –
谢谢@JoseRocha,这很好。但是,你能解释为什么设置输入元素的值不起作用吗? –