@drew_w が言っ$compile
たように、リンクから適用する必要がある場合は、要素をコンパイルする必要があります。
またはtemplate
、次のように直接使用できます
template: '<div ng-bind="data"></div>'
私は主にテンプレートを好む
また、次のようなjquery関数を使用しないでください
$('#click').click(function() {
$scope.data = 'change';
});
代わりに使用できます
$scope.change = function()
{
$scope.data = 'change';
}
また
ng-click="data = 'change'"
@drew_wが言ったように
完全なコードを見てください
ワーキングデモ
html
<div ng-controller="MyCtrl">Hello, {{name}}!
<button id='click' ng-click="change()">click to 'change'</button>
<my-div>watch, this doesn't change!!!???</my-div>
</div>
脚本
var myApp = angular.module('myApp', []);
myApp.directive('myDiv', function ($compile) {
return {
restrict: 'E',
template:'<div ng-bind="data"></div>'
};
});
myApp.controller('MyCtrl', function ($scope) {
$scope.data = "me";
$scope.name = 'Superhero';
$scope.change = function () {
$scope.data = 'change';
}
});