<div ng-controller="mycon"> <div class="" ng-click="myclick()">Click</div> <div class="box" box> <ul> <li>111{{name}}</li> </ul> </div> </div>
var app = angular.module("app",[]); app.controller("mycon", function ($scope) { $scope.myclick = function(){ $scope.name = "sdsdd"; } }); app.directive("box",function(){ return { restrice : "A", link : function (scope,element,attrs) { element.on("touchstart", function () { scope.name = "sdsdd"; scope.$apply(); }) } } })
需要加上
scope.$apply();
这个方法才行。。不然页面上看不到name的值。。
myclick事件里点击又是正常可以的
这是怎么回事啊?
因为你自己搞得事件,里面没有通知angular去进行脏检查,所以需要你手动调用一次检查。
拖出去打一顿
@我是糖糖: 我好怕怕~
apply是通知ng脏值检查机制,数据已发生改变,进行一次digest循环