angularjs - 动态变量名指令属性

标签 angularjs angularjs-directive

我有一个 my-edit 指令,它有一个 value 属性,需要绑定(bind)一个范围变量。

<my-edit value="myVar"></my-edit>

有没有办法做这样的事情:

<my-edit value="{{varName}}"></my-edit>

其中 varName = "myVar"

我想将该指令嵌套在具有“文本字段”属性的“我的列表框”指令中

<my-listbox ng-model="myList" text-field="itemProp"></my-listbox>

所以我尝试使用如下模板:

<div>
    <ul>
        <li ng-repeat="item in items">
            <my-edit value="item.{{textField}}"></my-edit>          
        </li>
    </ul>
</div>

但是显然不行

我想使用文本绑定(bind)也不是解决方案。

“我的列表框”的动态生成模板是去这里的方式吗?

我在编译函数中尝试过,但由于嵌套的 neRepeat 指令,效果不佳。是否应该通过在链接函数中使用 $compile 来完成?

谢谢

最佳答案

这是关于 Angular 的一些非常酷的东西,它评估了您传递给指令的字符串。这意味着您实际上只需执行 value="item[textField]" 就可以了。

例如,如果您有一个包含如下数据的 Controller :

$scope.data = {
    test: 'test_val',
    other: 'other_val'
};
$scope.val = 'test';

你可以像这样将它传递给你的指令:

<directive value="data[val]"></directive>

就是这样设置的:

scope: {
    value: '='
},

并且隔离范围将具有 scope.value = 'test_val' 并且只需将原始 Controller val 更改为 'other' 即可更新为 'other_val'

我做了一个fiddle这是为您设置的。

希望这对您有所帮助!

关于angularjs - 动态变量名指令属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22309389/

相关文章:

angularjs - Angular + Jade 的快速路由问题

javascript - iOS 上 jquery ui datepicker 奇怪的触摸/点击行为

javascript - 如何在 Angular http请求的错误和成功回调之间共享变量

angularjs - Angular 简单指令不起作用

javascript - 内容可编辑指令无法正常工作

javascript - 将服务值直接调用到指令中

css - Angular animate帮助——滑动然后隐藏

javascript - 分别启动 Angular 和 Node,但相互连接

javascript - 如何在不刷新页面的情况下更新 Angular 数据?

javascript - $digest 渲染 ng-repeat 作为注释