Мне нужно распечатать динамический html с помощью функции bind. Я использовал $ sce.trustAsHtml, назначенный переменной области. Ниже приведен мой код для справки. Я не могу найти, почему директива не работает в моем случае. Пожалуйста, помогите мне решить эту проблему.Как использовать директиву в угловых js. Почему в моем случае не работает?
app.js
angular.module('starter', ['ionic', 'starter.controllers', 'starter.services'])
.config(function($stateProvider, $urlRouterProvider) {
.state('groupchat', {
url: '/groupchat',
templateUrl: 'templates/groupchat.html',
controller: 'GroupChat',
controllerAs: 'GC'
})
})
.run(function($rootScope, $location, SharedProperties) {
SharedProperties.sharedObject = {
unread: 0,
subscriptions: [],
}
});
groupchat.js // - контроллер
angular.module('starter.controllers')
.directive('dynamic', function ($compile) {
return {
restrict: 'A',
replace: true,
link: function (scope, ele, attrs) {
scope.$watch(attrs.dynamic, function(html) {
ele.html(html);
$compile(ele.contents())(scope);
});
}
};
})
.controller('GroupChat', function($rootScope, $scope, $sce, $compile) {
$scope.trustedHtml = $sce.trustAsHtml('<span ng-click="testAlert()">Submit</span>');
$scope.testAlert = function() {
alert('testing');
};
});
groupchat.html
<ion-view>
<div dynamic="trustedHtml"></div>
</ion-view>
Я не ионный-эксперт , но вам не нужно вводить 'ngSanitize' в свой модуль для использования $ sce? (И, конечно, включите скрипт) – ippi