AngularJS 自定义指令 - 将属性设置为等于范围对象值
AngularJS Custom Directive - Setting attribute equal to scope object value
我正在尝试构建帖子提要,其中帖子对象指定一个类型值,然后指定帖子的模板。我构建了一个自定义指令,但我遇到了问题。
.JS
myApp.controller('FeedCtrl', function ($scope, $http) {
$scope.posts = [
{'title': 'Post 1',
'type': 'post',
'snippet': 'Vim id noster platonem definitionem...',
}
];
});
myApp.directive('myPost', function () {
return {
restrict: 'E',
scope: {
title: '=',
type: '=',
snippet: '=',
},
templateUrl: function(elem, attr){
return './templates/'+attr.type+'.html'
}
};
});
.HTML
<div ng-controller="FeedCtrl">
<div ng-repeat="post in posts">
<my-post title='post.title' type='post.type' snippet='post.snippet'></my-post>
</div>
</div>
不行...但是当我将类型属性更改为
<my-post type="post"></my-post>
它可以工作并将所有范围数据传递到 POST.html 模板中。有什么区别?为什么它不将"post.type"传递给指令,而是传递其他所有内容只是找到?
试试这个方式:
<my-post title='post.title' type='{{post.type}}' snippet='post.snippet'></my-post>
并更改此内容:
scope: {
title: '=',
type: '@',
snippet: '=',
}
在初始化作用域之前请求模板。您可以从隔离范围中删除type
,并将 HTML 更改为:
<my-post title='post.title' type='{{post.type}}' snippet='post.snippet'></my-post>
正如@karaxuna所建议的那样。
相关文章:
- 正在全局范围中查找JavaScript函数
- 如何通过数组更新角度子范围
- 如何使用ngrepeat和双向绑定获得指令的隔离范围
- HTML范围:动态设置值属性
- "实例范围”;TypeScript类的getter/setter
- jquery日期选择器年份范围默认值
- Jpgraph:如何手动设置X轴和Y轴的范围
- 角度范围$watch()等效于Rivets.js
- 如何使用EnquireJS使AngularJS范围变量依赖于媒体查询
- socket.io 客户端是否必须存在于全局范围内
- 相对于日期范围的日期/时间格式
- 正在禁用HTML验证.如何设置'novalidate'适用于全球范围内的每种形式
- 相对于输入的绝对定位[类型=范围]
- 我如何将包含$(this)的函数应用于选择器的范围
- 移相器.io如何在全局范围内使用独立于国家的资产
- Highcharts -设置minRange独立于系列,范围
- 获取所选文本相对于元素的范围
- 如何获取一周中存在于某个日期范围(Javascript)中的天数列表
- 如果内联样式包含颜色,则将类应用于范围
- Javascript & # 39;范围# 39;相当于