【问题标题】:Passing template URL to directive from controller从控制器将模板 URL 传递给指令
【发布时间】:2015-03-19 17:34:10
【问题描述】:

我正在尝试将模板 url 从控制器发送到指令。硬编码模板 url 工作正常。这是有效的:

<div my-directive template-url = "my-template.html" ></div>

在指令中

    return {
        restrict: 'AEC',
        templateUrl: function (tElement, tAttrs) {
            return tAttrs.templateUrl;
        },
        controller: 'myController as myCtrl',
        scope: {
            myDirective: '='
        }
    };

但我想在指令中指定模板 url 时使用我的控制器变量。所以我尝试了:

<div nav-switcher template-url="baseCtrl.directiveUrl" ></div>

我收到错误消息:

Error: [$compile:tpload] Failed to load template: "baseCtrl.directiveUrl"

如何将控制器变量传递给指令?

【问题讨论】:

  • 我不知道我是否理解它。只需在您的控制器上创建一个 $scope.directiveUrl 并使用 {{directiveURL}} 在 HTML 上调用它
  • 然后它给出一个错误Error: [$compile:tpload] Failed to load template: {{baseCtrl.directiveUrl}}
  • 你能告诉我们directiveUrl被声明的控制器吗?

标签: angularjs angularjs-directive angularjs-scope


【解决方案1】:

我想如果你把 HTML 改成

<div nav-switcher template-url="{{directiveUrl}}" ></div>

大括号会将表达式计算为文本。

【讨论】:

    猜你喜欢
    • 2015-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多