当前位置: 首页 > 面试题库 >

如何在div标签的class属性中动态传递自定义指令名称?

容宏逸
2023-03-14
问题内容

我是AngularJS的新手。我做了一个自定义指令user,我想通过使用变量在类属性中动态调用它。例如,$scope.dirName = "user"; 当我在以下代码中使用此变量时:

<div class = {{dirName}}></div>

其结果必须显示两个具有指定值的输入字段。但是它没有这样做。当我更换{{dirName}}使用user。它工作正常,意味着显示两个输入字段,并带有指定的值。有人可以告诉我我在做什么错吗?

这是index.html

<div ng-controller = "Ctrl">
<form name = "myForm">
  <div class = {{dirName}}></div>
  <hr>
  <tt>userName : {{user}}</tt>
</form>

这是script.js

<pre>var app = angular.module('App',[]);

app.controller('Ctrl', function($scope){
 $scope.user = {name:'adya',last:'Rajput'};
 $scope.dirName = "user";
});

app.directive('user',function(){
 return{
   restrict:'C',
   templateUrl:'template.html'
 };
});</pre>

template.html包含:

UserName : <input type='text' name='userName' ng-model='user.name' required>
LastName : <input type='text' name='lastName' ng-model='user.last'>

问题答案:

不幸的是,您无法将指令名称保存在字符串变量中,也无法在HTML中访问它们。你可以,但是,保存一个字符串中的变量$scope和使用ng- switch,以 选择 正确的指令:

<div ng-switch="dirName">
    <div ng-switch-when="ng-user">
      <div ng-user></div>
    </div>

    <div ng-switch-when="...">
      ...
    </div>
</div>

但是,现在最好使用更具描述性的内容而不是ng-user进行 切换

旁注: 请勿在自己的指令中使用 ng- 前缀。Angular使用该前缀,以便它不会与其他名称空间冲突。您应该为指令使用自己的前缀。

更新 :对于为​​何<div class="{{dirName}}"></div>不起作用的更新问题,它发生是因为angular
$compiles指令仅执行一次。如果您先是$interpolate模板的内容(将替换{{dirName}}ng- user),然后$compile在将其输入HTML之前先进行显式显示,则它应该可以工作。



 类似资料:
  • 我目前正在进行struts升级(从struts 1.x迁移到2.x) 我的项目有一个自定义标记处理程序类,用于格式化应用程序中的数字 TLD文件 FormatNumberTag类 JSP 这里,AccountBean是bean,floatingRate是属性 1)在标签处理程序类上面,(org.apache.struts.util.请求Utils)请求Utils.lookup 相应的方法是什么 2

  • 问题内容: 我正在尝试从我的自定义指令中获取一个 评估的 属性,但是我找不到正确的方法。 我已经创建了这个jsFiddle来详细说明。 我想念什么? 问题答案: 注意:我会找到更好的解决方案来更新此答案。 只要它们仍然相关,我也会保留旧答案以供将来参考。最新最好的答案是第一位的。 更好的答案: angularjs中的指令功能非常强大,但是要花些时间来了解它们背​​后的进程。 创建指令时,angul

  • 我使用JAXB根据一些XSD模式生成java类。对于以下元素: <代码> jaxb生成以下代码: 问题是我们需要使用一些依赖于getter/setter方法命名约定的专有XML工具,例如,对于字段REC_LOC他们希望使用名为getRecLoc(String value)和setRecLoc()的方法,而不是getRECLOC()。 有没有办法自定义jaxb生成的方法名?

  • 问题内容: 我正在使用JAXB来基于某些XSD架构生成Java类。对于诸如以下的元素: jaxb生成以下代码: 问题是我们需要使用一些专有的XML工具,这些工具依赖于getter / setter方法的命名约定。例如,对于字段REC_LOC,他们希望使用名为getRecLoc(String value)和setRecLoc()的方法,而不是getRECLOC()。 有什么方法可以自定义jaxb生成

  • 基于这个线程,我创建了一个动态列名w/dplyr::mutate(),在'dplyr'中使用动态变量名,现在我想对新列进行排序。。。。但我没有正确传递列名

  • 我有一个具有以下结构的数据集: 我想提供一个函数,它允许计算任何值之间的差异,我想这样做使用s这样的函数:(假设参数和作为参数传递) 当然,这不起作用,因为使用非标准评估。我知道现在有一个优雅的解决方案,可以使用来解决这个问题,我已经读过这个小插曲,但我仍然无法理解它。 怎么办? 以下是数据集的前几行,以获得一个可复制的示例