angularjs - Angular 指令未填充 ui-sref

标签 angularjs angularjs-directive typescript angular-ui-router

这是我实现主菜单项的指令:

export class MainMenuItemDirective {
    templateUrl = "ui/Directives/MainMenuItem.html";
    scope = {};

    link: angular.IDirectiveLinkFn = (scope: ng.IScope, element: ng.IAugmentedJQuery, attrs: ng.IAttributes) => {
        scope["icon"] = attrs["icon"];
        scope["title"] = attrs["title"];
        scope["ui-sref"] = attrs["ui-sref"];

        console.log(scope);
    };

    static factory(): any {
        var directive = () => {
            return new MainMenuItemDirective();
        };

        return directive;
    }
}

模板内容如下:

<li>
    <a ui-sref="{{ ui-sref }}" class="button expand radius">
        <span class="fa {{ icon }}"></span>
        <br />
        {{ title }}
    </a>
</li>

像这样使用:

<main-menu-item 
    title="Templates" 
    icon="fa-book" 
    ui-sref="configuration-templates">
</main-menu-item>

日志语句的输出包含所有三个值:

icon: "fa-book"
title: "Templates"
ui-sref: "configuration-templates"

这被渲染为:

<li>
    <a ui-sref="0" class="button expand radius ng-binding">
        <span class="fa fa-book"></span>
        <br>
        Templates
    </a>
</li>

注意ui-sref="0"。它应该是 ui-sref="configuration-templates"

问题:为什么我的 ui-sref 填充不正确?其他值设置正确。

最佳答案

我认为问题在于您正在尝试访问具有连字符名称 ui-sref 的属性。尝试对 ui-sref 使用驼峰式大小写,例如

指令:

link: angular.IDirectiveLinkFn = (scope: ng.IScope, element: ng.IAugmentedJQuery, attrs: ng.IAttributes) => {
    scope["icon"] = attrs["icon"];
    scope["title"] = attrs["title"];
    scope["uiSref"] = attrs["ui-sref"];

    console.log(scope);
};

模板:

<li>
    <a ui-sref="{{ uiSref }}" class="button expand radius">
        <span class="fa {{ icon }}"></span>
        <br />
        {{ title }}
    </a>
</li>

关于angularjs - Angular 指令未填充 ui-sref,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35614316/

相关文章:

javascript - Angular 需要重新加载页面才能显示 fb 共享按钮

javascript - 替换的超时事件触发两次或更多次(有时)

javascript - Angular.JS : Data not getting updated in Angular for Popups

javascript - 为什么元素没有以 Angular 动态添加

javascript - 在单 View Ionic Framework 中加载 Js 文件

javascript - Angularjs 在指令之间共享 Controller

angularjs - 使指令函数在父范围内可访问而无需事件

typescript - 如何使用@types/express-session?

javascript - Ionic2 创建 PHP 来获取数据以在页面中显示

typescript 错误: Property 'target' does not exist on type 'Object' for event handler