2017-06-09 29 views

答えて

0

私は最善の方法は、フィルタを使用していると思います。

angular.module('myApp', []) 
.filter('myReplace', function() { 
    return function(input) { 
    var out = ... //your replace logic 
    return out; 
    }; 
}); 

そして、あなたのテンプレートに適用されます:

あなたはあなたのようなフィルタを作成することができます

directive('sampleComponent', function() { 
    return { 
    template: '<h2 style="border:1px solid red">{{data.Title | myReplace}}</h2>' 
    }; 
}) 

があなたのディレクティブコントローラにフィルタを挿入することを忘れないでください。

+0

私は 'var out = replace(/ '/ g、'" '); ' – Tony

+0

のようなものを' var out = input.replace (/ '/ g、' "');' –

0

テンプレート内の変数を修正するには、スコープ内で変数を操作します。ディレクティブのリンク機能または関連するコントローラのいずれかで、単に$scope.data.Title.replace(/'/g, '"');(リンク機能がおそらく最も良い場所 - Link vs compile vs controller)と呼んでください。

angular.module('docsSimpleDirective', []) 
 
    .controller('Controller', ['$scope', function($scope) { 
 

 
    }]) 
 
    .directive('myCustomer', function() { 
 
    return { 
 
     template: 'Name: {{customer.name}} Address: {{customer.address}} <a ng-click="replace()" href="#">clickme</a>', 
 
     link: function($scope) { 
 
     $scope.customer = { 
 
      name: 'Naomi', 
 
      address: '1600 Amphitheatre' 
 
     }; 
 
     
 
     $scope.replace = function() { 
 
      console.log("running"); 
 
      $scope.customer.name = $scope.customer.name.replace(/a/g, "o"); 
 
     } 
 
     } 
 
    }; 
 
    });
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 
<div ng-app="docsSimpleDirective"> 
 
    <div ng-controller="Controller"> 
 
    <div my-customer></div> 
 
    </div> 
 
</div>

関連する問題