2017-08-15 24 views
0

我試圖做一個很簡單的事情在角1.2:我要創建我的自定義指令的動態內容,並添加一個單擊處理程序(clickCustomer)到它的一部分。但是,當我按照以下模式執行此操作時,雖然clickCustomer函數在元素的作用域上可用,但在單擊它時不會調用它。我很擔心,我需要讓Angular編譯動態內容,但我不確定這是否真的如此,如果是這樣,那麼該如何實現。角1.2:自定義指令的動態內容:NG-點擊不起作用

'use strict'; 

angular.module('directives.customers') 
.directive('customers', function() { 
    return { 
    restrict: 'A', 
    replace: true, 
    template: '<div class="customers"></div>', 
    controller: function ($scope, $element) { 
     var customers = ['Customer1', 'Customer2', 'Customer3']; 
     var customersMapped = customers.map(function (customer) { 
     return '<span ng-click="clickCustomer()" data-customer="' + customer + '">' + customer + '</span>'; 
     }); 
     var text = customersMapped.join(', '); 
     $element.html(text); 

     $scope.clickCustomer = function (event) { 
     console.log('Customer clicked', event); 
     } 
    } 
    }; 
}); 

回答

1

你說的沒錯,你需要使用$compile服務和編譯連接的DOM元素使角將成立事件和範圍。

檢查this fiddle

+0

這很有效,謝謝! –

相關問題