Javascript 为什么ngClick没有';在$compile之后不能再工作了?
单击按钮后,我从控制器调用编译html并将其注入主体的服务 html是针对控制器的$scope编译的(请参阅$scope.name中的“Hello World”),但ngClick不起作用 为什么? 如何针对单个电话的范围进行编译(在ng repeat内?)Javascript 为什么ngClick没有';在$compile之后不能再工作了?,javascript,jquery,angularjs,Javascript,Jquery,Angularjs,单击按钮后,我从控制器调用编译html并将其注入主体的服务 html是针对控制器的$scope编译的(请参阅$scope.name中的“Hello World”),但ngClick不起作用 为什么? 如何针对单个电话的范围进行编译(在ng repeat内?) 我知道在这种情况下最好有一个指令,但我需要了解它是如何工作的,因为我需要它作为一个对话框(请参见)在编译模板的$scope上没有定义名称alert。如果您包含了一个警报功能,那么ng单击会起作用: $scope.alert=函数(msg){
我知道在这种情况下最好有一个指令,但我需要了解它是如何工作的,因为我需要它作为一个对话框(请参见)在编译模板的
$scope
上没有定义名称alert
。如果您包含了一个警报
功能,那么ng单击
会起作用:
$scope.alert=函数(msg){window.alert(msg);};
但是,正如您自己所指出的,这项工作更适合于
指令
而不是服务。在编译模板的$scope
上未定义名称警报
。如果您包含了一个警报
功能,那么ng单击
会起作用:
$scope.alert=函数(msg){window.alert(msg);};
然而,正如您自己所指出的,这项工作更适合于
指令
而不是服务。我在这里看到的两个问题似乎都源于对表达式和范围的误解
在指令或绑定中使用表达式时,例如在以下两个示例中
<p>{{ phone.name }}</p>
<a ng-click="alert('angular')">Link</a>
将显示
$scope.phone.name
及
我会打电话给你
$scope.alert('angular')
查看您的plunker,您正在尝试使用电话
和警报
,而不将它们分配给范围。您可以通过将警报分配给控制器范围来创建执行警报的功能,但是电话
将更加困难,因为它需要每次都不同
您可以像我所做的那样为此创建一个全新的作用域并分配
电话
,也可以像我所做的那样从ng repeat
内部传递作用域并在此作用域中编译新元素。我在这里看到的两个问题似乎都源于对表达式和作用域的误解
在指令或绑定中使用表达式时,例如在以下两个示例中
<p>{{ phone.name }}</p>
<a ng-click="alert('angular')">Link</a>
将显示
$scope.phone.name
及
我会打电话给你
$scope.alert('angular')
查看您的plunker,您正在尝试使用电话
和警报
,而不将它们分配给范围。您可以通过将警报分配给控制器范围来创建执行警报的功能,但是电话
将更加困难,因为它需要每次都不同
您可以像我所做的那样为此创建一个全新的作用域并分配phone
,也可以像我所做的那样从ng repeat
内部传递作用域并在此作用域中编译新元素