angular.js - Angular中的directive指令是否能接受object类型的赋值?

【字号: 日期:2023-02-02浏览:26作者:雯心

问题描述

我想写一个list利用directive来写一个item这个item要根据赋予的不同的值产生相应变化 但目前我只知道简单的数据赋值例如

.directive(’al-item’, function() { return {restrict: ’EA’,template: ’<p>’ +’</p>’,replace: true,controller: function($scope, $element, $attrs, $transclude) { //这里根据a、b、c 三者的值 进一步修饰al-item} };})<al-item a=’’ b=’’ c=’’>

我希望的形式 更像是

<al-item object=’’>

这样提供一个object数据al-item就能实现我预定的样子请问这可以实现吗?

问题解答

回答1:

你可以看下关于指令的 scope部分,可以解决你的疑问。

大概:

html<p ng-controller='cc'><al-item object='obj'></al-item></p>

jsangular.module(’xx’, []).controller(’cc’, [’$scope’, function($scope) { $scope.obj = {a:’a’, b:’b’, ’c’:’c’}}]).directive(’alItem’, function() { return {restrict: ’EA’,template: ’<p>’+’</p>’,replace: true,transclude: true,scope: { object: '='},controller: function($scope, $element, $attrs, $transclude) { //scope.object 这里就可以判断了} };})

大概这样吧 详细的可以看官方文档了

回答2:

directive 的 scope 本身就支持三种模式1. '=' 任何对象2. '&' 外部的方法传入 directive 内部调用3. '@' 字符串

回答3:

html里面的object也是一个attrs, 在function 里已经调入attrs,可以用attrs直接调用object。

相关文章: