输入文本的ng重复没有填充指令中的ng模型
ng-repeat of input text not populating ng-model in directive
Angular很新,我有一个ng repeat,它显示了几个输入框,每个输入框都应该有自己的ng模型名称,但ng repeat没有用名称填充ng模型,如果我试图围绕它构建观察程序{{}},则会崩溃(即,ng model="{{data.id}"
我的应用程序js:
angular.module('app', [])
.controller('ExampleController', ['$scope', function($scope) {
$scope.data = {
dataSet: null,
inputs: [
{id: 'data1', name: 'Option A', type:'input', preFill:"no.A"},
{id: 'data2', name: 'Option B', type:'input', preFill:"no.B"},
{id: 'data3', name: 'Option C', type:'input', preFill:"no.C"}
],
};
}]).directive('formPanel', function() {
return {
restrict: 'E',
scope: {
info: '='
},
template: '<div ng-controller="ExampleController"><form name="myForm">'+
'<label for="{{option.name}}" ng-repeat="option in data.inputs"><br />'+
'Input {{option.name}}:'+
'<input ng-model="option.id" id="{{option.id}}" name="{{option.name}}" '+
'type="{{option.type}}" class="form-control">'+
' </label></form><hr>'+
'<span>data: = {{ data1}} , {{data2}}, {{data3}}.</span><br/>'+
'</div>' };
});
})
和html:
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.5.3/angular.min.js"></script>
<script src="app.js"></script>
</head>
<body ng-app="app" >
<form-panel info="data"></form-panel>
</body>
</html>
我尝试过这个Plunker:Plunker链接
因此,正如您所看到的,ng模型没有绑定(?),可能出于同样的原因,$scope名称在输入中显示为数据,而不是要绑定到的数据的名称。
即,应读取ng model="data1",但应读取为ng model="option.id"
首先,您应该将控制器连接到应用程序,只是声明它不会起作用。
您可以通过添加属性ng-controller="ExpampleController"或将控制器添加到指令中来完成此操作:
restrict: 'E',
controller: 'ExampleController'
template:...
但是,如果您将其添加到指令中,您只需要放置元素<form-panel>
,就不必向它传递任何信息。
此外,您不能对ng model="{{someData}}"进行插值,因为表达式已经在没有大括号的情况下进行了求值
请检查下面的HTML代码:
<div>
<form name="myForm">
<label for="{{option.name}}" ng-repeat="option in data.inputs"><br />
Input {{option.name}}:
<input ng-model="option.id" id="{{option.id}}" name="{{option.name}}"
type="{{option.type}}" class="form-control"
placeholder="{{ option.preFill }}">
</label>
</form>
<hr>
<tt>data: = {{ data.inputs[0].id }} , {{data.inputs[1].id}}, {{data.inputs[2].id}}.</tt><br/>
</div>
已经修改了代码,您可以在Plunker链接中找到它
相关文章:
- 在Angular JS中,预先填充ng中的下拉值repeat
- 用ng重复填充表,并检查匹配的表头数据
- 输入文本的ng重复没有填充指令中的ng模型
- 为什么不是't ng表将数据从数组填充到表中
- AngularJS-jquery插件SelectBoxIt在ng个选项完成填充select之后
- 使用ng repeat用数组中的数据填充表行
- 如何从 ng 重复项填充表单
- 用 jpeg/jpg 填充 ng-flow 作为 blob
- 角度:使用 ng-click 自动填充/更改存储在 ng-grid 中的数据
- AngularJS - 指令填充文本框,但ng-model没有值
- 在填充迭代器之前,角度 ng 重复渲染模板
- 使用 ng-model 的输入在通过 javascript 填充文本框时不绑定
- 复选框列表 将数组格式化为 JSON 并在 ng-repeat 中映射后未填充
- 角度路由未填充 ng 视图
- Angular Js ng-controller没有填充该值
- 角度填充 ng 重复和 ng 模型
- 为什么选择标签没有填充我的 ng 选项
- AngularJS:如果ng模型被另一个模型填充,如何让它受到影响
- 如何在html中只使用ng repeat来填充数据,而不使用repeat html's元素
- 访问由ng填充的元素的方法从其父元素重复