在Angular指令中传递复杂信息

时间:2013-09-27 13:56:15

标签: jquery-ui angularjs angularjs-directive

我在Angular应用程序中使用JQuery UI。我注意到我为每个指令重复相同的模式:使用单个复杂对象调用JQuery UI函数进行初始化。我没有为每个组件编写单独的指令,而是发现使用存根指令更容易。这可能不是一个长期解决方案,但它现在有效。

是否有更好的方法来注入属性以使标记更具可读性,同时仍然保持指令的通用性质?具体来说,我可以避免使用JSON字符串,使其更像普通的角度指令。

现有的一行:

<button jquiw-control='{"control":"button","options":{"label":"Hello","icons": {"primary": "ui-icon-gear","secondary": "ui-icon-triangle-1-s"}}}' ng-click="jump()"></button>

<button jquiw-control="button" jquiw-button-label="Hello" jquiw-button-icons-primary= "ui-icon-gear" jquiw-button-icons-secondary="ui-icon-triangle-1-s" ng-click="jump()"></button>

这是我的Generic ui指令的一个工作示例。 http://plnkr.co/edit/eRoOeq

1 个答案:

答案 0 :(得分:1)

至少你可以将硬编码的JSON放在控制器中,就像这样

$scope.config = {
    "control": "button",
        "options": {
        "label": "Hello",
            "icons": {
            "primary": "ui-icon-gear",
            "secondary": "ui-icon-triangle-1-s"
        }
    }
};

然后将模板更改为

<button jquiw-control='{{config}}' ng-click="jump()"></button>

Plunker:http://plnkr.co/edit/yY1Lc2?p=preview