我在routeProvider
模板中有一个自定义标签,它调用指令
模板。version
属性将由作用域填充,然后调用正确的模板。
<hymn ver="before-{{ week }}-{{ day }}"></hymn>
这首赞美诗有多个版本,根据星期几而定。我希望使用该指令来填充正确的。html部分。模板URL未读取变量。
emanuel.directive('hymn', function() {
var contentUrl;
return {
restrict: 'E',
link: function(scope, element, attrs) {
// concatenating the directory to the ver attr to select the correct excerpt for the day
contentUrl = 'content/excerpts/hymn-' + attrs.ver + '.html';
},
// passing in contentUrl variable
templateUrl: contentUrl
}
});
摘录目录中有多个文件在-1-monday之前标记为
。html,星期二2点之前。html
…
多亏了@pgregory,我可以通过使用此指令进行内联编辑来解决我的问题
.directive("superEdit", function($compile){
return{
link: function(scope, element, attrs){
var colName = attrs["superEdit"];
alert(colName);
scope.getContentUrl = function() {
if (colName == 'Something') {
return 'app/correction/templates/lov-edit.html';
}else {
return 'app/correction/templates/simple-edit.html';
}
}
var template = '<div ng-include="getContentUrl()"></div>';
var linkFn = $compile(template);
var content = linkFn(scope);
element.append(content);
}
}
})
您可以使用ng-include
指令。
试试这样的东西:
emanuel.directive('hymn', function() {
return {
restrict: 'E',
link: function(scope, element, attrs) {
scope.getContentUrl = function() {
return 'content/excerpts/hymn-' + attrs.ver + '.html';
}
},
template: '<div ng-include="getContentUrl()"></div>'
}
});
更新。用于观看ver
属性
emanuel.directive('hymn', function() {
return {
restrict: 'E',
link: function(scope, element, attrs) {
scope.contentUrl = 'content/excerpts/hymn-' + attrs.ver + '.html';
attrs.$observe("ver",function(v){
scope.contentUrl = 'content/excerpts/hymn-' + v + '.html';
});
},
template: '<div ng-include="contentUrl"></div>'
}
});
emanuel.directive('hymn', function() {
return {
restrict: 'E',
link: function(scope, element, attrs) {
// some ode
},
templateUrl: function(elem,attrs) {
return attrs.templateUrl || 'some/path/default.html'
}
}
});
所以你可以通过标记提供templateUrl
<hymn template-url="contentUrl"><hymn>
现在您只需注意用动态生成的路径填充属性contentUrl。
问题内容: 我正在尝试根据范围值使用不同的模板进行指令。 这是我到目前为止所做的,我不知道为什么它不起作用http://jsbin.com/mibeyotu/1/edit HTML元素: 指示: 问题答案: 1)您正在将内容作为属性传递到html中。试试这个: 代替: 2)指令的数据部分正在被编译,因此您应该使用其他东西。代替数据类型,例如datan-type。 链接在这里: http://jsb
问题内容: 我在模板中有一个需要模板的自定义标签。该属性将由范围填充,然后需要正确的模板。 根据赞美诗的星期和日期,它有多种版本。我期望使用该指令来填充正确的部分。不会读取变量。 有在摘录目录多个文件被标记,… 问题答案: 您可以使用指令。 尝试这样的事情: UPD。 用于观看属性
问题内容: 我有一个带有变量类型的指令myDirective。如果我运行,我希望指令使用templateUrl:x-template.html。如果我愿意,指令可以使用templateUrl:y-template.html。 这是我目前的指令。 我通过stackoverflow和angular文档阅读,但是没有找到我需要的任何东西。 我现在正在尝试按照以下方式进行操作: 但是不知道在哪里做。 你们
wx:if 预期: any 用法: 根据表达式的值的 truthiness 来有条件地渲染元素。在切换时元素及它的数据绑定 / 组件被销毁并重建。 注意:如果元素是 <block/>, 注意它并不是一个组件,它仅仅是一个包装元素,不会在页面中做任何渲染,只接受控制属性。 WARNING 当和 wx:if 一起使用时,wx:for 的优先级比 wx:if 更高。详见列表渲染教程 参考: 条件渲染 -
问题内容: 任何人都有一个简单的指令来自动显示Bootstrap模式吗?在Bootstrap 3中,他们取消了自动显示模态的功能,因此我不能使用有角度的ng-if show块。任何帮助都会很棒。 问题答案: 已针对angular 1.2和Bootstrap 3.1.1更新: http : //embed.plnkr.co/WJBp7A6M3RB1MLERDXSS/ 我扩展了Ender2050的答案
我使用的是角度。js用于一个应用程序,该应用程序通过在下面的td中显示tr并向下滑动div,使用隐藏的tr来模拟滑出效果。这个过程使用击倒技术非常有效。js,因为我可以使用 对于angular,必须将ng repeat应用于html元素,这意味着我似乎无法使用标准方法重复这些双行。我对此的第一个反应是创建一个指令来表示这些双TR,但这还不够,因为指令模板必须有一个根元素,但我有两个(<代码> 如果