等级不是以角度添加的

时间:2015-01-26 21:21:45

标签: javascript angularjs

我有一个角度函数

$scope.show = function(el){

    if($scope.steps[el] == true){
        $scope.steps[el] = false;
    }
    else{
        $scope.steps = [];
        $scope.steps[el] = true;
    }
}

当我通过点击此

来调用它时
<span class="" ng-click="show('getDate')">text</span>

然后一个'显示'的类在这个div中添加

<div class="form-block steps second" ng-class="{shown : steps.getDate}">

但是当我在这个鳕鱼中调用粉丝时,我没有得到这个课程

$(document).on('click', "li", function() {
    $scope.show('getDate');
    console.log($scope.steps);
});

但是在控制台中我得到了这个日志

[getDate: true]

来自SELECT标记

的jquery.formstyler http://dimox.name/jquery-form-styler/使用JS生成的LI标记

1 个答案:

答案 0 :(得分:0)

正如@charlietfl所说,这是因为您在“Angular”世界之外更新了DOM。因此,角度不知道你做了这样的变化。

要修复此问题,您应该使用关键字$apply

强制角度消化

示例:

$(document).on('click', "li", function() {
    $scope.$apply(function () {
        $scope.show('getDate');
    });
    console.log($scope.steps);
});

重要提示:大部分时间使用jQuery而不是AngularJS方式行为不佳。

  • 感谢@Bhojendra尼泊尔注意到这个错误。