0

angular内でブートストラップポップオーバーを使用しようとしています。ディレクティブを作成し、$compile を使用してコンテンツを動的にアタッチしようとしました。ただし、 $compile はコンテンツを置き換えていません。これがフィドルです。

http://jsfiddle.net/gurukashyap/4ajpyjyf/

customDirectives = angular.module('customDirectives', []);
function MyCtrl($scope) {
    $scope.items = ['abc','dev','it'];


}

    customDirectives.directive('custPopover', function ($compile) {
        return {
            scope : {
                items : '=items'  
            }, 
            restrict: 'A',

            template: '<span>Label</span>',
            link: function (scope, el, attrs) {
                scope.label = attrs.popoverLabel;
                var temp = '<ul><li ng-repeat="item in items">{{item}}</li></ul>';
                var contents = $compile(temp)(scope);
                console.log(scope);
                $(el).popover({
                    trigger: 'click',
                    html: true,
                    content:  contents,
                    placement: attrs.popoverPlacement
                });
            }
        };
    });

    angular.module('CustomComponents', ['customDirectives']);

任意のヘルプが評価されました

4

2 に答える 2

1

HTML では、属性の名前を「newvar」から「items」に変更しません。

于 2015-04-28T22:02:43.230 に答える
0

パラメータを間違って渡しただけです。items: '=newvar'

http://jsfiddle.net/4ajpyjyf/2/

于 2015-04-28T22:02:07.770 に答える