首页新闻找找看学习计划

为什么angularjs用dom的事件,scope的值不更新?

0
[待解决问题]
<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事件里点击又是正常可以的
这是怎么回事啊?
深蓝色梦想的主页 深蓝色梦想 | 初学一级 | 园豆:6
提问于:2015-10-31 00:57
< >
分享
所有回答(2)
0

因为你自己搞得事件,里面没有通知angular去进行脏检查,所以需要你手动调用一次检查。

幻天芒 | 园豆:36544 (高人七级) | 2015-10-31 10:35

拖出去打一顿

支持(0) 反对(0) 我是糖糖 | 园豆:446 (菜鸟二级) | 2015-12-17 11:26

@我是糖糖: 我好怕怕~

支持(0) 反对(0) 幻天芒 | 园豆:36544 (高人七级) | 2015-12-17 22:04
0

apply是通知ng脏值检查机制,数据已发生改变,进行一次digest循环

野兽' | 园豆:227 (菜鸟二级) | 2016-03-08 09:47
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册