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


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


 .directive('al-item', function() {
    return {
        restrict: 'EA',
        template: '

<div>'
                 +'</div>

',
        replace: true,
        controller: function($scope, $element, $attrs, $transclude) {
            //这里根据a、b、c 三者的值 进一步修饰al-item
        }
    };
})

<al-item a='' b='' c=''>

我希望的形式 更像是


 <al-item object=''>

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

directive angularui 指令 angularjs

MOU御用黑锅 10 years, 1 month ago

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

风雨不同舟- answered 10 years, 1 month ago

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

苹果里的虫子 answered 10 years, 1 month ago

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

大概:


 html


 <div ng-controller="cc">
<al-item object="obj"></al-item>
</div>


 js


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

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

我吃金坷垃 answered 10 years, 1 month ago

Your Answer