如何在指令的html模板中包含pageURL

时间:2015-06-19 08:45:44

标签: javascript angularjs

我想在我的angularjs指令的html模板中包含一个扩展pageUrl。这是我案例中最简单的例子。

angular.module('pageInclude', [])
    .directive('pageInclude', function() {
        return {
            restrict: 'E',
            replace: true,
            scope: {
                extUrl: '='
            },
            template: "<div><h1>Page Include</h1><ng-include src=\"'{{extUrl}}'\"></ng-include></div>"
        }
    });

我的Html代码是:

<page-include ext-url="example/extendForm.html"></page-include>

然后我收到了以下错误:

  

错误:[$ interpolate:noconcat]插值时出错:&#39; {{extUrl}}&#39;   Strict Contextual Escaping禁止连接插值   需要可信值时的多个表达式。看到   http://docs.angularjs.org/api/ng。$ SCE   http://errors.angularjs.org/1.3.15/ $插值/ noconcat P0 =&#39;?%7B%7BextUrl%7D%7D&#39;       在REGEX_STRING_REGEXP(angular.js:63)       at $ interpolate(angular.js:10152)       at addAttrInterpolateDirective(angular.js:8101)       在collectDirectives(angular.js:7203)       在compileNodes(angular.js:7035)

有没有办法让这个案子有效?谢谢你的回复。

2 个答案:

答案 0 :(得分:0)

尝试改变

extUrl: '='

extUrl: '@'

或将attr值更改为

ext-url="'example/extendForm.html'"

example

答案 1 :(得分:0)

进行以下更改

scope:{
  extUrl:'@'
}

并将模板写为

template: "<div><h1>Page Include</h1><ng-include src=\"{{extUrl}}\"></ng-include></div>"