【发布时间】:2016-04-15 04:29:39
【问题描述】:
请检查此代码笔,当单击按钮单击我重置名称时,名称输入应重置为空,当我在指令范围上执行console.log 时,我看到@ 987654323@ 设置为空字符串,但视图中的值未更新。怎么了?
angular.module('mainApp', [])
.directive('myTab', function() {
return {
restrict: 'E',
template: 'name: <input type="text" ng-model="name">',
controller: function($location, $scope) {
$scope.name = 'myname';
$('#clickMeToReset').on('click', function() {
$scope.name = '';
})
}
};
})
.directive('myMenu', function() {
return {
restrict: 'E',
template: '<button id="clickMeToReset">click me to reset name</button>'
};
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="mainApp">
<my-menu></my-menu>
<my-tab></my-tab>
</div>
【问题讨论】:
-
只需在名称变量后添加`$scope.$apply();`
标签: javascript jquery angularjs angularjs-directive