AngularJS指令属性中的非字符串类型
发布时间:2020-12-17 07:43:43 所属栏目:安全 来源:网络整理
导读:我想创建一个属性窗格,其中属性的数量可以根据选择的对象而有所不同. 我已经创建了自己的指令称为属性,显示属性的名称和值,使用如下代码: div ng-app="MyApp" div class="properties-pane" ng-controller="PropertiesPane" div ng-repeat="property in prop
我想创建一个属性窗格,其中属性的数量可以根据选择的对象而有所不同.
我已经创建了自己的指令称为属性,显示属性的名称和值,使用如下代码: <div ng-app="MyApp"> <div class="properties-pane" ng-controller="PropertiesPane"> <div ng-repeat="property in properties"> <property name="{{property.name}}" value="{{property.value}}"> </div> </div> </div> 简单,不是吗?这样做很好,除了property.value将被转换为一个字符串(因为它是DOM元素上的一个属性).如果属性值是其他数据类型,我该怎么办?例如一个对象.看到其余的实现(在Coffeescript中): MyApp = angular.module('MyApp',[]) MyApp.controller 'PropertiesPane',($scope) -> $scope.properties = [ # Note that value is an object,not a string: {name: 'First',value: {x:0,y:0,z:42}},{name: 'Second',y:20,z:0}},{name: 'Third',value: {x:1,y:1,z:1}},] MyApp.directive 'property',($compile) -> restrict: 'E' transclude: false replace: true scope: {name: '@name',value: '@value'} template: '<div>{{name}} {{value.x}},{{value.y}},{{value.z}}</div>' # ^^^^^^^ ^^^^^^^ ^^^^^^^ # this doesn't work as value is a string,not an object 作为value.x,y和z在字符串上未定义,结果当然是: 首先, 我想要的输出是: 第0,42号 我怀疑在我如何编程添加元素的想法中有一些根本错误.什么是倾斜的方式来实现这样的东西? 编辑:解决方案 通过引用而不是作为字符串值将值作为对象引用,在指令中使用=而不是@: scope: {name: '@',value: '='} 并在模板中: <property name="{{property.name}}" value="property.value"> 请注意,我删除了{{}}.
name =’property.name’和范围:{name:’=’,value:’=’}?
这应该是魔术. 要知道更多见this并搜索(ctrl f)为’@’,第一个结果是你想要的); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 【caffe】Aborted at 1457505270 (unix time) try "dat
- Ngrx angular 2我应该如何设置初始状态?
- Webservice学习笔记四,XML-RPC与SOAP 区别
- WebService从零到项目开发使用1—技术研究之基础篇 XML
- scala – Spray.io:无法编译测试规范
- 支持多文件上传,预览,拖拽,基于bootstrap的上传插件file
- Shell语法—— case 条件语句
- ABP module-zero +AdminLTE+Bootstrap Table+jQuery权限管理
- 使用angularJS中的Blob方法破坏下载的文档
- webservice相对路径