Maison  >  Questions et réponses  >  le corps du texte

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

我想写一个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就能实现我预定的样子
请问这可以实现吗?

曾经蜡笔没有小新曾经蜡笔没有小新2713 Il y a quelques jours599

répondre à tous(3)je répondrai

  • 阿神

    阿神2017-05-15 16:54:52

    Vous pouvez consulter la partie relative à la portée des instructions pour résoudre vos questions.

    Environ :

    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 这里就可以判断了
            }
        };
    })
    

    Probablement comme ça. Pour plus de détails, vous pouvez lire la documentation officielle

    répondre
    0
  • PHP中文网

    PHP中文网2017-05-15 16:54:52

    La portée de la directive elle-même prend en charge trois modes
    1. "=" n'importe quel objet
    2. "&" La méthode externe passe dans la directive et est appelée en interne
    3. Chaîne "@"

    répondre
    0
  • 我想大声告诉你

    我想大声告诉你2017-05-15 16:54:52

    L'objet en HTML est également un attrs. Attrs a été transféré dans la fonction. Vous pouvez utiliser attrs pour appeler directement l'objet.

    répondre
    0
  • Annulerrépondre