当前位置: 首页 > 知识库问答 >
问题:

带有Ng-If的ng-模型不起作用(非常基本的示例)[重复]

彭展
2023-03-14

我有一个非常简单的代码。filteroption='account id',当值正确时将显示输入。但是ng-model不起作用,我在pre中没有看到任何东西

<pre>{{test}}</pre> // doesnt work
<pre> {{filterOption}}</pre> // this shows Account ID
<input ng-if="filterOption == 'Account ID'" ng-model="test" required>

共有1个答案

刘英彦
2023-03-14

ng-if有自己的子作用域,这允许它销毁和还原作用域元素。因此,您的模型需要到达父范围(通常是控制器),这可以使用$parent前缀来完成

下面是一个例子:

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.9/angular.min.js"></script>

<div ng-app>

  <input type="text" ng-if="true" ng-model="a"> Doesn't work
  <br>
  <input type="text" ng-if="true" ng-model="$parent.a"> Works
  <br> 
  {{a}}

</div>
 类似资料:
  • 问题内容: 这是显示问题的小提琴。http://jsfiddle.net/Erk4V/1/ 如果我在ng-if内部有一个ng-model,就会出现该模型无法正常工作的情况。 我想知道这是一个错误还是误解了正确的用法。 问题答案: 与其他指令一样,该指令将创建子范围。请参见下面的脚本(或此jsfiddle) 因此,您的复选框将更改子作用域的内部,而不更改外部父作用域。 请注意,如果要修改父作用域中的

  • 问题内容: 我有一个视图,其中父div上具有ng-if,而某些子元素上具有ng-show。嵌套在带有ng-if的元素下时,ng- show似乎无法正常工作。这是Angular错误还是我做错了什么? 见这个矮子。 HTML: JavaScript: 谢谢, 安迪 问题答案: 与指令不同,它 创建了一个新的作用域* 。 * 因此,当您在内部编写内容时,您是在子范围而非主范围上设置属性。 要解决此问题,

  • 问题内容: 我正在尝试允许用户使用和编辑项目列表。(请参阅此小提琴。)但是,我尝试过的两种方法都导致了奇怪的行为:一种方法没有更新模型,另一种方法使每个keydown的表单模糊。 我在这里做错什么了吗?这不是受支持的用例吗? 这是小提琴中的代码,为方便起见进行了复制: ​ 问题答案: 这似乎是一个具有约束力的问题。 建议是不要绑定到基元。 您应该遍历集合内的字符串,而应该遍历对象。解决您的问题 j

  • 问题内容: 我试图在类型文件的输入标签上使用ng-model: 但是选择文件后,在控制器中,$ scope.vm.uploadme仍未定义。 如何在控制器中获取所选文件? 问题答案: 我使用指令创建了一种解决方法: 输入标签变为: 或者,如果仅需要文件定义:

  • 我试图理解ng-if和作用域。正如我所知,ng-if创建了一个新的子作用域。以下是我的问题: 我的问题是,在这两种情况下(true或false)我都无法访问someValue2。我怎么能做到这一点?

  • 问题内容: 用户故事:当新用户单击“新用户”复选框并接受“条款和条件”单选按钮时,应启用“注册”按钮。 我在angularJS中的代码无法正常工作。“注册”按钮保持禁用状态。想知道出了什么问题? 问题答案: 该表达式在当前范围内进行评估。因此,您只需要以下内容,而无需使用进行任何附加插值: 请注意,我添加了一个,因为如果用户 未 接受TnC,您可能希望禁用该按钮。 工作演示:http : //pl