我在代码中注意到一个奇怪的行为,我做了一个按钮,其中的操作是设置一个范围并显示一个带有此范围值的引导模态
通常代码应该如下所示
但是这不起作用我只在模型中得到一个空值
var table = $('#data').DataTable();
$('#data tbody').on('click', 'td.details-control,.addsta,.mjump,.mcon,.delwf', function () {
if (this.className == "btn btn-danger delwf") {
var tr = $(this).closest('tr');
var row = table.row(tr);
$scope.sworcode = row.data().worcode;
$scope.slancode = row.data().lancode;
console.log(row.data().worcode);
$('#modal-del').modal('show');
};
}
但如果我添加这样的HTTP请求,则该值会显示在模态
中var table = $('#data').DataTable();
$('#data tbody').on('click', 'td.details-control,.addsta,.mjump,.mcon,.delwf', function () {
if (this.className == "btn btn-danger delwf") {
var tr = $(this).closest('tr');
var row = table.row(tr);
$http({
method: 'GET',
url: localhost + "/test"
}).then(function successCallback(response) {}, function errorCallback(response) {});
$scope.sworcode = row.data().worcode;
$scope.slancode = row.data().lancode;
console.log(row.data().worcode);
$('#modal-del').modal('show');
};
}
有人可以解释一下吗?
答案 0 :(得分:0)
在代码中添加http请求时代码工作的原因是它会消除$ digest循环,这将更新范围变量的值。如果没有http,您可以使用@Html.TextBoxFor(m => m.Email, new { @id = "mail", @class = "form-control", placeholder = "Email" })
$scope.$apply()
了解更多信息How do I use $scope.$watch and $scope.$apply in AngularJS?