标签: angularjs-scope

如何使用AngularJS在浏览器控制台中访问$ scope变量?

我想$scope在Chrome的JavaScript控制台中访问我的变量.我怎么做?

我既$scope不能myapp在控制台中看到我的模块名称也不能看到变量.

angularjs angularjs-scope

1220
推荐指数
11
解决办法
57万
查看次数

如何使用$ scope.$ watch和$ scope.$在AngularJS中申请?

我不明白如何使用$scope.$watch$scope.$apply.官方文档没有帮助.

具体我不明白:

  • 它们是否与DOM连接?
  • 如何更新模型的DOM更改?
  • 他们之间的联系点是什么?

我尝试了本教程,但需要理解$watch$apply理所当然.

做什么$apply$watch做什么,以及如何恰当地使用它们?

angularjs angularjs-scope

1076
推荐指数
6
解决办法
93万
查看次数

AngularJS中指令范围内的'@'和'='有什么区别?

我仔细阅读了关于该主题的AngularJS文档,然后使用指令进行了调整.这是小提琴.

以下是一些相关的片段:

我有几件事没有得到:

  • 我为什么要使用"{{title}}"'@'"title"使用'='
  • 我是否也可以直接访问父作用域,而无需使用属性装饰我的元素?
  • 文档说"通常需要通过表达式将数据从隔离范围传递到父范围",但这似乎也适用于双向绑定.为什么表达路线会更好?

我找到了另一个显示表达式解决方案的小提琴:http://jsfiddle.net/maxisam/QrCXh/

angularjs angularjs-directive angularjs-scope isolated-scope

1053
推荐指数
10
解决办法
53万
查看次数

AngularJS控制器中的'this'与$ scope

AngularJS主页"创建组件"部分中,有以下示例:

controller: function($scope, $element) {
  var panes = $scope.panes = [];
  $scope.select = function(pane) {
    angular.forEach(panes, function(pane) {
      pane.selected = false;
    });
    pane.selected = true;
  }
  this.addPane = function(pane) {
    if (panes.length == 0) $scope.select(pane);
    panes.push(pane);
  }
}
Run Code Online (Sandbox Code Playgroud)

注意如何select添加方法$scope,但是addPane添加了方法this.如果我将其更改为$scope.addPane,则代码会中断.

文档说实际上存在差异,但没有提到差异是什么:

以前版本的Angular(pre 1.0 RC)允许您this与该$scope方法互换使用,但现在不再是这种情况了.内的方法上的范围限定this并且$scope是可互换的(角套this$scope),但是不另外你的控制器构造内部.

如何this$scope在AngularJS控制器的工作?

this angularjs angularjs-scope

1013
推荐指数
5
解决办法
29万
查看次数

AngularJS:在调用$ scope时防止错误$ digest正在进行中.$ apply()

我发现自从以角度构建应用程序后,我需要手动将页面更新到我的范围.

我知道这样做的唯一方法是$apply()从我的控制器和指令的范围调用.这个问题是它不断向控制台抛出一个错误:

错误:$ digest已在进行中

有谁知道如何避免这个错误或以不同的方式实现相同的事情?

angularjs angularjs-scope angularjs-digest

832
推荐指数
14
解决办法
42万
查看次数

AngularJS从子控制器访问父作用域

我已经设置了我的控制器 data-ng-controller="xyzController as vm"

我有一个父/子嵌套控制器的场景.通过使用$parent.vm.property我在嵌套的html中访问父属性没有问题,但我无法弄清楚如何从我的子控制器中访问父属性.

我试过注入$ scope然后使用$scope.$parent.vm.property,但这不起作用?

有人可以提供建议吗?

angularjs angularjs-scope

378
推荐指数
3
解决办法
48万
查看次数

$ rootScope.$ broadcast vs. $ scope.$ emit

现在,之间的性能差异$broadcast$emit已被淘汰,没有任何理由,更喜欢$scope.$emit$rootScope.$broadcast

他们是不同的,是的.

$emit 仅限于范围层次结构(向上) - 如果它符合您的设计,这可能是好的,但在我看来这是一个相当随意的限制.

$rootScope.$broadcast适用于所有选择收听活动的人,这在我看来是一个更明智的限制.

我错过了什么吗?

编辑:

为了澄清答案,发送的方向不是我追求的问题.$scope.$emit向上发送事件,$scope.$broadcast向下发送.但为什么不总是$rootScope.$broadcast用来接触所有预期的听众呢?

angularjs angularjs-scope

348
推荐指数
4
解决办法
15万
查看次数

$观看一个物体

我想要查看字典中的更改,但由于某种原因,不会调用监视回调.

这是我使用的控制器:

function MyController($scope) {
    $scope.form = {
        name: 'my name',
        surname: 'surname'
    }

    $scope.$watch('form', function(newVal, oldVal){
        console.log('changed');
    });
}
Run Code Online (Sandbox Code Playgroud)

这是小提琴.

我希望每次更改名称或姓氏时都会触发$ watch回调,但不会发生.

这样做的正确方法是什么?

javascript angularjs angularjs-scope

313
推荐指数
4
解决办法
16万
查看次数

在AngularJS中编写指令时,如何确定是否不需要新的作用域,新的子作用域或新的隔离作用域?

我正在寻找一些可以用来帮助确定在编写新指令时使用哪种类型的范围的指南.理想情况下,我想要一个类似于流程图的东西,它会引导我解决一堆问题并弹出正确答案 - 没有新的新范围,新的子范围或新的隔离范围 - 但这可能要求太多.这是我目前微不足道的指导方针:

我知道在元素上使用带有隔离范围的指令会强制同一元素上的所有其他指令使用相同(一个)隔离范围,因此当使用隔离范围时,这不会严重限制吗?

我希望来自Angular-UI团队的一些人(或其他已写过许多指令的人)可以分享他们的经验.

请不要添加简单地说"为可重用组件使用隔离范围"的答案.

angularjs angularjs-directive angularjs-scope

265
推荐指数
4
解决办法
4万
查看次数

如何使用angularjs(1.x)动态设置HTML元素的id属性?

提供了一个类型的HTML元素div,如何设置其id属性的值,这是范围变量和字符串的串联?

javascript string-concatenation angularjs angularjs-scope

255
推荐指数
6
解决办法
33万
查看次数