问题标签 [angularjs-components]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
355 浏览

angularjs - 了解组件中的绑定

我没有得到 angular components的绑定。我已将此材料 FAB 演示重新设计为组件。所以没有ng-controller指令了。但是我无法使绑定bindings: {isOpen: '='}工作。我收到以下错误:

与指令“tsButton”一起使用的属性“isOpen”中的表达式“未定义”是不可分配的!

代码如下所示:

如果我省略bindings: {isOpen: '='}thenmd-open="$ctrl.isOpen"不会传播。

一种解决方法是定义方法,ng-mouseenter="$ctrl.open()"并且ng-mouseleave="$ctrl.close()"在控制器中将正确的布尔值分配给vm.isOpen. 但正如我所说,这只是一种使代码更长的解决方法,等等。

0 投票
1 回答
122 浏览

angularjs - 仅绑定属性一次(如 bindonce)

组件上是否可以绑定类似bindonce的样式?请举个例子。

0 投票
6 回答
37566 浏览

javascript - 如何使用 Angular 组件观察组件绑定变化

如何收听角度组件绑定更改并执行操作?

现在,当items更改我想使用此值执行另一个操作时,
我该怎么做?

0 投票
1 回答
33153 浏览

angularjs - 将对象传递给组件

我创建了一个组件,该组件需要引用为其创建组件的对象。我没有工作,我所有的试验都失败了。下面,我试着描述一下这个意图。

组件定义可能如下所示:

在服务中,我想像这样创建我的对象:

问题

如何将数据传递给角度组件标签?我是否必须切换回组件指令才能使其工作?

任何想法都非常感谢。谢谢你。

0 投票
2 回答
106 浏览

angularjs - 无法将数据传递给 AngularJS 组件指令

我正在尝试使用 AngularJS 1.5 创建一个组件指令。我将控制器中定义的 $scope 变量传递给组件指令。但它不是渲染。

这是组件指令:

这是视图

但是没有显示任何内容,浏览器控制台中也没有错误。

0 投票
1 回答
3577 浏览

javascript - Angular Component:如何为父级中定义的输出绑定函数指定值?

我想使用Angular 1.5 的组件从它的单向绑定中获益:<hero-detail hero="ctrl.hero" save="ctrl.save(hero)"></hero-detail>. 但是,正如 Todd Motto 在他的博客中指出的那样:Todd Motto 的博客:Angular 1.5 中的单向数据绑定,它仅适用于原语。所以我不得不绑定原语:

接下来在组件中,在$onInit钩子上,hero从原语制作对象:

并在用户单击保存时调用指定函数。奇怪的是,如果用户在组件内更改英雄的名字并单击保存,当调用从父级绑定的函数时,组件没有更改hero-detail。我做了一个 plunker 来显示我的问题:Plunk 显示 Angular 1.5 中子/父输出绑定的问题- 如果您打开开发者控制台,单击“设置名称...”,然后单击保存,您将看到console.logs 将显示您来自hero-detail它的是 Spawn2,但在父上下文中(应该是逻辑,比如与$http服务交谈),它仍然具有旧值Spawn。我错过了什么吗?Angular 文档中的代码看起来很像我的代码:

我不知道发生了什么事。预先感谢您帮助我处理这个问题。PS 我在使用 Plunk 版本时遇到了一些问题,现在一切正常 - 在浏览器的开发者控制台中,您可以看到更新问题

0 投票
4 回答
3409 浏览

angularjs - 模板:未解析的变量或类型 $ctrl

如何告诉 PhpStorm/WebStorm$ctrl在模板中是已知的,并帮助它确定它所属的控制器(可能使用 jsdoc)?

我在 Angular 1.5 中以这种方式创建组件:

ControllerAs没有帮助...

出现问题的 HTML 片段 ( $ctrl.*):

0 投票
2 回答
12666 浏览

angularjs - angularjs组件在模板中获取表单

所以我有一个带有包含表单的模板的组件。

我的组件.html:

如何在组件控制器中访问 myForm?目前我正在注入 $scope 以从中获取它。或者这是获取表格的唯一方法?

编辑:添加了一些代码以更好地在 javascript 中说明

0 投票
0 回答
124 浏览

javascript - 如何对组件随附的模板进行单元测试?

我知道我们应该使用 $componentController 来测试组件控制器,但是我们如何测试组件附带的模板呢?使用指令非常简单,我认为使用组件也很简单。我在文档中找不到答案,在其他地方也找不到。这是一个例子。

有一个这样的模板组件:

我想以编程方式触发测试中的点击,并验证 vm.doSomething() - 我们组件控制器的方法 - 应该做的事情,它做得正确。我怎样才能做到这一点?

0 投票
1 回答
12255 浏览

javascript - Angular 1.5 组件双向绑定不起作用

我有一个 Angular 1.5.3 组件,它似乎没有更新双向绑定的值。我的控制器更改了传递给组件的值。

当控制器初始化时,组件似乎读取默认值,但此后就像它是单向绑定一样。未来对绑定值的任何更改都不会在组件中读取。

我从一个类似的功能指令转换了它,两种方式的绑定工作得很好。我是否缺少组件的 on change 事件或类似的事件?我是否需要向组件控制器添加特定逻辑,以便组件模板可以读取绑定值?

实现组件的菜单模板:

子菜单组件:

简化的子菜单组件模板: