javascript - 将数组绑定(bind)到 AngularJS 中的指令变量

标签 javascript html angularjs

我正在尝试将一个数组放入模板中,这样我就可以使用其中的各个值。我的问题是该属性一旦进入我的模板就变成了一个字符串,因此它不再可以作为 {{var[0]}} 访问,而是返回“字符串”的第一个字符,通常是“[”

这是数据的简化设置:

"varForward": ["100", "1"],
"varBack": ["1", "100"]

这是与该数据交互的 HTML 文件的简化部分:

<my-customer-vars value="{{varForward}}">
    </address-numbers>
<my-customer-vars value="{{varBack}}">
    </address-numbers>

最后这里有一部分应该用我自己的东西替换自定义标签:

directive('myCustomerVars', function($compile) {
    return {
        restrict: 'E',
        scope: {
            value: "@"
        },
        template:
        '<div>'+
          '<p class="body-text">Some stuff goes here</p>'+
          '<input type="text" name="firstinput" value="{{value[0]}}"> - '+
          '<input type="text" name="secondinput" value="{{value[1]}}">'+
        '</div>',
        replace: true
    }
});

所以我在这里,如果我尝试使用 value[0] 我得到 [ 如果我尝试获取 value[1] 我得到 "等等。在指令模板中使用数组有什么帮助吗?

最佳答案

您需要将“@”更改为“=”并传入不带 {{ }}

的数组

像这样:

<my-customer-vars value="varForward">
    </my-customer-vars>
<my-customer-vars value="varBack">
    </my-customer-vars>

指令:

directive('myCustomerVars', function($compile) {
    return {
        restrict: 'E',
        scope: {
            value: "="
        },
        template:
        '<div>'+
          '<p class="body-text">Some stuff goes here</p>'+
          '<input type="text" name="firstinput" value="{{value[0]}}"> - '+
          '<input type="text" name="secondinput" value="{{value[1]}}">'+
        '</div>',
        replace: true
    }
});

发生这种情况是因为 @ 定义的 directuve 属性中的每个表达式都被评估为仅作为字符串,而以其他方式被评估为绑定(bind)表达式。 (有 2 种方式绑定(bind),所以要小心)。

关于javascript - 将数组绑定(bind)到 AngularJS 中的指令变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14695792/

相关文章:

javascript - 用户登录或注销时刷新导航菜单指令

javascript - Kendo DateTimePicker 不处理 UTC 偏移量

javascript - AngularJS 种子中的多个 ng-App 代码段是什么意思?

javascript - 将毫秒转换为日期并将日期转换为毫秒

javascript - 如何创建一个可以自然键入的输入字段,然后将其转换为 HTML?

javascript - 如何将悬停效果更改为仅针对下拉菜单的 onclick

javascript - 媒体查询的 jQuery 图像错误处理

javascript - Angular JS 下拉列表。从弹出窗口中选择一个值应该更新下拉列表的值

html - 悬停时导航栏上的背景颜色更改问题

javascript - 在 angularjs 中的函数中获取 $scope 的值