Angularjs自定义指令传递对象数据
Angularjs custom directive passing object data
我想建立一个自定义指令,在那里我可以传递一个对象,并根据该对象呈现不同的HTML。
假设物体是这样的
$scope.obj = {
type: 'input',
placeholder: 'Some text…',
name: 'first_name'
}
自定义指令应该看起来像这样(我猜)
<renderObj data="obj" />
这将呈现一个带有给定数据的输入字段。我想我必须在指令中使用link
或compile
方法,但是如何使用?请注意,obj
可能有许多不同类型的数据,并且可能比这个简单的示例更复杂。所以我必须能够在指令内决定用哪些数据渲染。
也许我根本不需要自定义指令,而是使用ng-include
?
您可以使用$compile
来构建动态DOM。指令中的代码看起来像这样:
link: function (scope, element) {
// ...
if (data.type === 'input') {
$compile('<input type="text" placeholder="{{placeholder}} name="{{name}}"></input>')(scope.data, function (clonedElement) {
element.append(clonedElement);
});
}
// ...
一般来说,尽管我建议在你的指令模板中尽可能多地做这些。想象一个这样的指令模板:
<div>
<input ng-if="data.type == 'input'" type="text" placeholder="{{data.placeholder}}" name="{{data.name}}" />
</div>
相关文章:
- 将嵌套对象数据添加到窗体中
- 使用javascript更改嵌套对象数据
- 如何将状态对象/数据传递给(异步)ajax 回调
- 如何使用HTML5中的sessionStorage概念在Javascript中打印对象数据
- 如何在express中使用socket.io发布多个对象数据
- 如何在 Javascript 中将函数绑定到对象数据成员的更改
- 在$.ajax调用中将附加数据添加到jQuery包装的对象数据中
- 当点击处理程序添加到谷歌地图圆圈标记时,无法访问对象数据
- JavaScript对象数据和数组
- 访问主数组内的数组中的对象数据
- 角度.js从NG重复更新对象数据
- HTML 对象数据文件(如果未找到)
- 设置对象数据结构数组属性
- Ajax 请求不发送我的对象数据
- 获取对象数据的浅拷贝的最快方法是什么
- 如何访问对象的键值?希望从对象数据填充表
- JSON.parse 似乎不解析对象数据
- 在 android WebView 中的 java 和 javascript 之间共享对象(数据)
- 选择 JSON 对象数据表元素以列出其所有元素
- 当响应 JSON 对象数据计数为零时,AJAX 成功回调函数重定向到错误回调