我想从 jQuery 函数为 $scope 中的变量设置一个值,如下代码所示。一切都很好,但新的值(value)体现在 UI 中。
app.controller('myCtrl', function($scope) {
$scope.carname = "Volvo";
$('#sample').click(function(e){
$scope.carname = "Audi";
});
});
这是我的完整程序:Link
如果有人帮助我,我会很高兴。
最佳答案
为了使您的代码正常工作,您需要在分配 $scope.carname = "Audi";
后运行 $scope.$digest()
p>
像这样:
app.controller('myCtrl', function($scope) {
$scope.carname = "Volvo";
$('#sample').click(function(e){
$scope.carname = "Audi";
$scope.$digest();
});
});
这是该计划的 w3schools 链接:Link
正如下面的评论中提到的,您还可以使用 $scope.$apply()
,如下所示:
app.controller('myCtrl', function($scope) {
$scope.carname = "Volvo";
$('#sample').click(function(e){
$scope.$apply( function() {
$scope.carname = "Audi";
});
});
});
这是该计划的 w3schools 链接:Link
您可以在以下链接中详细了解 $scope.$digest()
和 $scope.$apply()
的用例:
注意: 正如许多其他评论和一些答案中提到的,Angular 确实提供了一个内置方法来监听 click
事件,称为 ng-click
。这是它的文档:AngularJS: ngClick
关于javascript - 从 jQuery 设置 $scope 变量的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42620655/