javascript - AngularJs:创建指令

标签 javascript angularjs angularjs-directive

我对我想要编写的指令有疑问。这是jsfiddle 这是 HTML

<div ng-controller="TestCtrl">
    <mydir base="{{absolute}}">
        <div>{{path1}}</div>
        <div>{{path2}}</div>
    </mydir>
</div>

该指令称为“mydir”,需要基本属性的值和所有路径值(可以定义任意数量的路径)。我不想将 Controller 中的值直接注入(inject)指令范围(它们需要是独立的)。我对此有 3 个问题(也请查看 jsfiddle!)

1) 尽管代码按现在的方式工作,但出现错误:“TypeError: Object # has no method 'setAttribute'”。有什么建议吗?

2) 指令scope.base 中的“undefined”而不是“/base/”。这个问题可以解决吗?

3) 如何制作指令中所有路径值的列表?

最佳答案

您需要设置一个隔离范围来声明该指令的基本属性:

scope: {
    base: "@"
}

这解决了 (2)。

问题(1)是由 replace: true 引起的与scope合作上面,因为它创建了一个注释节点来包含重复的 <div> s。

对于 (3),添加 paths: "="范围,当然,将它们作为数组从父 Controller 传递。

参见 fork fiddle :http://jsfiddle.net/swYAZ/1/

关于javascript - AngularJs:创建指令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18850036/

相关文章:

javascript - 多次调用 ajax 脚本不起作用

javascript - localstorage.setitem 不适用于 Angular

javascript - 使用 AngularJS 更改元素的类

javascript - 如何让我的指令在 ng-bind-html 内容之后运行并对其进行操作?

javascript - 严格过滤数组数组

javascript - 三.JS翻译目标

javascript - Stockcharts - 添加偏移以避免在边缘绘制点

javascript - 在禁用的按钮上显示工具提示,如果在一个按钮上使用 AngularJS 启用了该按钮,则将其删除

javascript - $watch ngModel 从内部指令使用隔离范围

javascript - 从另一个指令获取指令的属性?