Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/467.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如果不使用简单javascript,则为ng_Javascript_Angularjs_Angularjs Ng If - Fatal编程技术网

如果不使用简单javascript,则为ng

如果不使用简单javascript,则为ng,javascript,angularjs,angularjs-ng-if,Javascript,Angularjs,Angularjs Ng If,当我通过简单的javascript函数更改值时,ng if不起作用。正在调用我的函数,但无法在视图中看到值的更改。请参考下面的代码 HTML <div id="span" ng-app='MyModule' ng-cloak ng-controller="MyController"> <div ng-if="!bool"> This is for true </div> <div ng-if="bool"> This is False &

当我通过简单的javascript函数更改值时,ng if不起作用。正在调用我的函数,但无法在视图中看到值的更改。请参考下面的代码

HTML

<div id="span" ng-app='MyModule' ng-cloak ng-controller="MyController">

<div ng-if="!bool">
  This is for true
</div>
<div ng-if="bool">
  This is False
</div>
{{bool}}
<br>
<input type="submit" ng-click = "myfunction('test')" value="ng-if button">
</div>
<input type="submit" onClick = "check1()" value="simple JS button">
当我使用
ng点击按钮时,它会改变
bool
的值,但
simple JS按钮的情况不一样。实际上,我正在一个已经使用jQuery的页面中实现Angular,所以我需要使用
simple JS按钮


JS Fiddle

首先,
ng click
能够解析角度表达式


其次,它处理对当前作用域的引用,并调用
$scope.$apply
,通知任何观察者进行更新。如果要在函数中添加对
angular.element(document.getElementById('span')).scope().$apply()
的调用,则它应该按预期工作。

使用$scope.apply。这是因为angulars digest cycle不知道您的值是否在其范围外更改,就像在一个简单的JS函数中一样。

您使用的是Angular 2吗?@BrunoJoaquim不,这是angulars 1的可能副本,希望这对您有所帮助。
angular.module('MyModule', [])
.controller('MyController', function ($scope) {
$scope.bool = true;
$scope.myfunction = function (data) {
    $scope.bool = !$scope.bool;
};
});
function check1() {
    angular.element(document.getElementById('span')).scope().myfunction('test');
}