Как использовать директиву в угловых JS. Не работает в моем случае, почему.?

0

Мне нужно распечатать динамический html с привязкой функции click. Я использовал $ sce.trustAsHtml, назначенный переменной области. Ниже приведен мой код для справки. Я не могу найти, почему директива не работает в моем случае. Пожалуйста, помогите мне решить эту проблему.

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>
  • 1
    Я не специалист по ионным технологиям, но разве вам не нужно вводить ngSanitize в свой модуль, чтобы использовать $ sce? (И включите скрипт конечно)
Теги:
ionic-framework
angularjs-directive
ionic-view

1 ответ

1
<div dynamic= "{{trustedHtml}}"> ??

im думая, что если это была проблема, вместо hte var content, это было бы обязательным для строки "trustedHtml", и она будет работать/показываться еще в вашем случае

  • 0
    Когда я использую <div dynamic="trustedHtml"></div> он получает принтер как <div dynamic="&lt;span ng-click=&quot;testAlert()&quot;&gt;Submit&lt;/span&gt;"></div> я не получаю html.
  • 0
    не могли бы вы избежать всей вашей директивы "dynamic" и использовать встроенную директиву ng-bind-html: /

Ещё вопросы

Сообщество Overcoder
Наверх
Меню