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

AngularJS ng-if和作用域[重复]

杜起运
2023-03-14

我试图理解ng-if和作用域。正如我所知,ng-if创建了一个新的子作用域。以下是我的问题:

<input ng-model="someValue1" />
<div ng-if="!someCondition">
    <input ng-model="$parent.someValue2" />
</div>
$scope.someCondition = true;

if ($scope.someCondition) {
    $scope.someValue2 = $scope.someValue1;        
}

我的问题是,在这两种情况下(true或false)我都无法访问someValue2。我怎么能做到这一点?

共有1个答案

庞瀚
2023-03-14

是,ng-if创建新的子作用域

要观察ng-if中的模型属性,经验法则是:

不要将作用域用作模型

ng-if='showStuff' //here my scope is model **INCORRECT**
ng-if='someObject.showStuff' // ** CORRECT **

在ng-model中使用对象属性-然后,即使ng-if创建了新的子作用域,父作用域也会发生更改。

要看到一个工作的柱塞,请看这里:http://jsfiddle.net/erk4v/4/

 类似资料:
  • Atom支持语言特定的设置。你可以在Markdown文件中软换行,或者在Python中把tab的宽度设置为4。 语言特定的设置只是一些东西的子集,我们把它叫做“作用域设置”。作用域设置可以只作用于一类特定的语法符号。比如你可以仅仅对Ruby的注释,Markdown中的代码段,或者JavaScript函数名称进行设置。 语法符号中的作用域名称 编辑器的每个符号都有一系列的作用域名称。例如,前面提到的

  • 问题内容: 我收到以下代码的编译错误: 如果将其更改为以下代码,则没有编译错误: 为什么第一种语法是错误的,以及从哪种语言标准开始? 问题答案: Java规范说一条语句具有以下形式: 在哪里和可各种各样的事情,包括块(代码括号括起来),任务(已声明的变量),其他的if语句等。 值得注意的是,该列表中缺少声明语句(例如或),因此会出现编译错误。 有关完整列表,您可以在此处阅读Java规范:http

  • 问题内容: 在Python中,if语句内的变量作用域是否在if语句外可见?(来自Java背景,因此有点奇怪) 在以下情况下,首先在if块内部定义名称,但是该变量在if块外部也可见。我原以为会发生错误,但打印出“ joe”。 问题答案: 语句未在Python中定义范围。 循环,语句,/等都不会。 只有模块,函数和类定义范围。 请参阅Python教程中的Python作用域和命名空间。

  • 问题内容: 我正在学习来自python的,并希望了解C#垃圾收集器的工作原理- 我发现弄清了幕后行为后,我对python有了更多的了解,并且希望避免出现这种麻烦。我最初在学习python时犯的错误。 我无法找到关于何时将项目垃圾回收并留下诸如以下问题的任何清晰明了的解释 “对象的最后一个引用超出范围时会发生什么?” 当您返回到定义对象的范围时,该对象是否被垃圾回收了? “在什么时候引用数量会减少?

  • 本文向大家介绍Javascript变量的作用域和作用域链详解,包括了Javascript变量的作用域和作用域链详解的使用技巧和注意事项,需要的朋友参考一下 工作这几年,js学的不是很好,正好周末有些闲时间,索性买本《js权威指南》,大名鼎鼎的犀牛书,好好的把js深入的看一看。买过这本书的第一印象就是贼厚,不过后面有一半部分都是参考手册。 一:作用域   说起变量第一个要说到的肯定就是作用域,正是因

  • 前言 面试问题: 说一下对变量提升的理解 说明this的几种不同的使用场景 创建10个<a>标签,点击的时候弹出来对应的序号 如何理解作用域 实际开发中闭包的应用 涉及到的知识点: 执行上下文 this 作用域 作用域链 闭包 执行上下文 执行上下文主要有两种情况: 全局代码: 一段<script>标签里,有一个全局的执行上下文。所做的事情是:变量定义、函数声明 函数代码:每个函数里有一个上下文。