angularjs$scope.apply()动态输入

angularjs$scope.apply()动态输入,angularjs,angularjs-scope,Angularjs,Angularjs Scope,角度专家- 我有一个AngularJS SPA,index.html页面上有一个打开angular ui模态对话框的功能,根据模态对话框中的用户选择,我需要在index.html中填充3个动态生成的输入字段。我确实知道动态生成的输入字段的id模式,并且可以使用jqLite来设置值来获得对它们的引用 在index.html/main页面中 <input type="text" class="form-control" id="txt1&quo

角度专家-

我有一个AngularJS SPA,index.html页面上有一个打开angular ui模态对话框的功能,根据模态对话框中的用户选择,我需要在index.html中填充3个动态生成的输入字段。我确实知道动态生成的输入字段的id模式,并且可以使用jqLite来设置值来获得对它们的引用

在index.html/main页面中

<input type="text" class="form-control" id="txt1" placeholder="txt1" ng-model="txt1">
<input type="text" class="form-control" id="txt2" placeholder="txt1" ng-model="txt2">
<input type="text" class="form-control" id="txt3" placeholder="txt1" ng-model="txt3">
但是,应用的这些值都没有绑定到angularjs范围。 我理解这是因为没有经过angular的$scope/$digest。因此,我尝试调用$scope.$apply(),这显然不起作用,因为我放置它的位置已经作为$digest的一部分进行了评估(希望我的措辞正确)

我已经做了一个实验来说明我的处境

我已经阅读了有关$scope和$digest的所有内容,并且具备了理论知识。我不知道如何应用这些知识来解决这种情况,并使用动态分配的输入值执行$scope.$apply()


请帮助。

首先,永远不要将jQuery与Angular一起使用。当您足够理解Angular,能够质疑我的断言中的“从不”部分时,就可以研究jQuery如何处理Angular了

jQuery或任何试图从控制器获取/设置DOM元素的尝试都会使您陷入困境。这是一个很好的起点

特别是针对您的问题,
$modal
为您提供了
modalInstance.result
,从视图控制器可以通过
$modalInstance.close(result)
从模态控制器获得传递给它的任何结果 这是您使用它的方式:

在模态控制器中:

$modalInstance.close({txt1: "value from txt1", txt2: "something else"});
var modalInstance = $modal.open(...);
modalInstance.result.then(function(result){
  $scope.txt1 = result.txt1;
  $scope.txt2 = result.txt2;
});
这是在视图控制器中获取它的方式:

$modalInstance.close({txt1: "value from txt1", txt2: "something else"});
var modalInstance = $modal.open(...);
modalInstance.result.then(function(result){
  $scope.txt1 = result.txt1;
  $scope.txt2 = result.txt2;
});

首先,永远不要将jQuery与Angular一起使用。当您足够理解Angular,能够质疑我的断言中的“从不”部分时,就可以研究jQuery如何处理Angular了

jQuery或任何试图从控制器获取/设置DOM元素的尝试都会使您陷入困境。这是一个很好的起点

特别是针对您的问题,
$modal
为您提供了
modalInstance.result
,从视图控制器可以通过
$modalInstance.close(result)
从模态控制器获得传递给它的任何结果 这是您使用它的方式:

在模态控制器中:

$modalInstance.close({txt1: "value from txt1", txt2: "something else"});
var modalInstance = $modal.open(...);
modalInstance.result.then(function(result){
  $scope.txt1 = result.txt1;
  $scope.txt2 = result.txt2;
});
这是在视图控制器中获取它的方式:

$modalInstance.close({txt1: "value from txt1", txt2: "something else"});
var modalInstance = $modal.open(...);
modalInstance.result.then(function(result){
  $scope.txt1 = result.txt1;
  $scope.txt2 = result.txt2;
});

首先,永远不要将jQuery与Angular一起使用。当您足够理解Angular,能够质疑我的断言中的“从不”部分时,就可以研究jQuery如何处理Angular了

jQuery或任何试图从控制器获取/设置DOM元素的尝试都会使您陷入困境。这是一个很好的起点

特别是针对您的问题,
$modal
为您提供了
modalInstance.result
,从视图控制器可以通过
$modalInstance.close(result)
从模态控制器获得传递给它的任何结果 这是您使用它的方式:

在模态控制器中:

$modalInstance.close({txt1: "value from txt1", txt2: "something else"});
var modalInstance = $modal.open(...);
modalInstance.result.then(function(result){
  $scope.txt1 = result.txt1;
  $scope.txt2 = result.txt2;
});
这是在视图控制器中获取它的方式:

$modalInstance.close({txt1: "value from txt1", txt2: "something else"});
var modalInstance = $modal.open(...);
modalInstance.result.then(function(result){
  $scope.txt1 = result.txt1;
  $scope.txt2 = result.txt2;
});

首先,永远不要将jQuery与Angular一起使用。当您足够理解Angular,能够质疑我的断言中的“从不”部分时,就可以研究jQuery如何处理Angular了

jQuery或任何试图从控制器获取/设置DOM元素的尝试都会使您陷入困境。这是一个很好的起点

特别是针对您的问题,
$modal
为您提供了
modalInstance.result
,从视图控制器可以通过
$modalInstance.close(result)
从模态控制器获得传递给它的任何结果 这是您使用它的方式:

在模态控制器中:

$modalInstance.close({txt1: "value from txt1", txt2: "something else"});
var modalInstance = $modal.open(...);
modalInstance.result.then(function(result){
  $scope.txt1 = result.txt1;
  $scope.txt2 = result.txt2;
});
这是在视图控制器中获取它的方式:

$modalInstance.close({txt1: "value from txt1", txt2: "something else"});
var modalInstance = $modal.open(...);
modalInstance.result.then(function(result){
  $scope.txt1 = result.txt1;
  $scope.txt2 = result.txt2;
});

你给出的答案,我读了好几遍,现在又读了一遍。从您的回答中,我意识到我再一次被jQuery方法迷住了。将数据分配给动态文本框的方法不是按id引用进行分配,而是查找ng模型引用并更新它,在本例中为“$scope.txt1”等。然而,我只希望我的ng模型引用在json对象中是如此平坦(它们不是)。另外,我懒得在JSFIDLE中使用modalInstance.result.then,但在我的原始代码中确实使用了它。谢谢你的更正。谢谢你的帮助!是的,每当你感觉“啊,我可以用jQuery来做/设置某物”——停下来,考虑一下这是一个警告信号,你可能没有完全理解你给出的答案,我现在读了好几遍,再一次。从您的回答中,我意识到我再一次被jQuery方法迷住了。将数据分配给动态文本框的方法不是按id引用进行分配,而是查找ng模型引用并更新它,在本例中为“$scope.txt1”等。然而,我只希望我的ng模型引用在json对象中是如此平坦(它们不是)。另外,我懒得在JSFIDLE中使用modalInstance.result.then,但在我的原始代码中确实使用了它。谢谢你的更正。谢谢你的帮助!是的,每当你感觉“啊,我可以用jQuery来做/设置某物”——停下来,考虑一下这是一个警告信号,你可能没有完全理解你给出的答案,我现在读了好几遍,再一次。从您的回答中,我意识到我再一次被jQuery方法迷住了。将数据分配给动态文本框的方法不是按id引用分配,而是查找ng模型引用并更新它,在本例中为“$scope.txt1”等