javascript - Angular - 基于模型创建指令

标签 javascript angularjs angularjs-directive

这个可以转吗

[{
  compType: "special-label",
  style: {
  left: 10,
  top: 10
 },
 {
  compType: "special-image",
  style: {
  left: 10,
  top: 10
 }
 ]

进入此:

 <special-label element="element"><special-label>

我们尝试使用两个指令:

  1. 特殊元素作为包装指令
  2. 作为特定指令的特殊标签/特殊图像

    <div class="element" ng-repeat="element in elements">
    <wix-element element="element" compType="{{element.compType}}" test="5">
    
    </wix-element>
       </div>
    

但是,当我们尝试在特殊元素的模板方法中访问 c​​ompType 时,它​​尚未被解析。

有什么想法我们应该做什么才能让它发挥作用吗?

最佳答案

您可以为此使用scope.$observe:

app.directive('wixElement', function () {
    // these should maybe be defined in a factory
    var SPECIAL_LABEL = 0,
        SPECIAL_IMAGE = 1;
    return {
        restrict: 'A',
        link: function (scope, element, attrs) {
            // observe changes in attribute - could also be scope.$watch
            attrs.$observe('compType', function (value) {
                switch (value) {
                    case SPECIAL_LABEL:
                        // do stuff for special-label
                        break;
                    case SPECIAL_IMAGE:
                        // do stuff for special-image
                        break;
                }
            });
        }
    });

另外,看看我的回答:https://stackoverflow.com/a/17087331/1008519 忽略变量到 Controller 的传递,只看如何访问指令中的变量。

有一件事......我不确定为什么你想用对象传递样式。难道你不应该只根据类来设置元素的样式吗?

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

相关文章:

JavaScript 幻灯片不工作

javascript - 无法使用 Javascript 或 JQuery trim 对象属性

javascript - 将 JavaScript 添加到 w2ui 面板

javascript - AngularJS kendo 网格绑定(bind)到 Angular 服务 webapi - 使用 [fromuri] 解析时排序始终为 null

javascript - 类型错误 : Cannot call method '$on' of undefined

javascript - 作为属性的 Angular 事件监听器

javascript - Electron/Nativefier Web App - 新窗口打印问题 [HTML, JS]

javascript - 错误您应该使用 AngularJS 服务 $log 的 "log"方法而不是控制台对象

javascript - 平台工具\adb.exe : Comman d failed with exit code 3221226356

javascript - AngularJS 指令还是服务?