replaceWith不适用于div ng-include

时间:2016-06-07 21:21:43

标签: jquery angularjs

我有一个替换自定义指令的div。

 <div class="timeline" layout="row" ng-repeat="event in ::vm.events">
     <div replace-with='{{event.content}}'></div>
</div>

这是我的指示:

(function () {
    'use strict';

    angular
        .module('app')
        .directive('replaceWith', replaceWith);

    /* @ngInject */
    function replaceWith() {
        // Usage:
        //
        // Creates:
        //
        var directive = {
            link: link,
            restrict: 'A'
        };
        return directive;

        function link(scope, element, attrs) {
            attrs.$observe('replaceWith', function (value) {
                if (value) {
                    element.replaceWith(angular.isUndefined(value) ? '' : value);
                }
            });
        }
    }
})();

我从哪里获取内容数据的控制器:

 vm.templateUrl = "scripts/controllers/sample.content.html";
 vm.events = [{
            title: 'Title1',
            subtitle: '',
            date: '6/6/2016',
            image: 'assets/avatar-5.png',
            content: '<div ng-include="vm.templateUrl"></div>',
            palette: ''
        }]

这里我的带有replace-with属性的div没有被ng-include模板取代。但是当我硬编码我的内容数据时,content:<p>Sample Data</p>它正在工作。有人可以帮我这个。

1 个答案:

答案 0 :(得分:0)

一种方法是使用指令的templateURL属性并使其动态化,如此问题的最佳答案所述:

Angular.js directive dynamic templateURL