Angular Interpolation Only只接受1个特定参数
问题描述:
我使用的是AngularJS 1.5.0,我遇到了一些我无法弄清的事情,尽管有很多谷歌和调试。Angular Interpolation Only只接受1个特定参数
如果我定义一个控制器并注入提供者,我可以使用下面的代码来获得一些动态输出;
var x = $interpolate('Hello {{name}}!');
调用x({});
将输出Hello !
调用x({name: 'FizzBuzz'});
将输出Hello FizzBuzz!
但是,如果我再尝试将它设置为一个不同的变量;
var z = $interpolate('Hello {{abc}}!');
它立即给出这个错误;
Uncaught TypeError: (intermediate value) is not a function
这几乎就像$interpolate
只能设置一次。真的很困惑,请帮忙。
编辑:这似乎是与Chrome开发人员工具的问题。如果我在定义插值调用的线路(即var x = $interpolate(...)
)之后中断并尝试执行新呼叫(如var y = $interpolate(...)
),那么这就是所有情况都会下降的地方,并且会得到未捕获类型错误。
答
试试这个,这应该工作。
var x = $interpolate('Hello {{abc}}!');
x({abc: 'FizzBuzz'});
你确定你的示例代码是正确的? x({'FizzBuzz'})不应该起作用,因为它需要一个属性名称。你能提供一个可行的例子,像plunkr或jsfiddle吗? –
对不起,更新了示例调用。我不知道如何做jsfiddle中的注射部分......否则我会很乐意这样做。我刚刚通过chrome开发工具/控制台也注意到了这一点。不是100%确定如何在jsfiddle中复制它。 – Trent