我在尝试在AngularJS中创建工厂时遇到了麻烦。我只是将控制器中的代码移动到工厂并进行一些更改以使其工作。
这是我遇到的错误:
“El objeto no acepta la propiedad oelmétodo'addPoint'”(在IE中) (“对象不支持属性或方法'addPoint'”)
“Uncaught TypeError:undefined不是函数”(在Chrome中)
这是我的代码:
function Shape (shape) {
this.ToolName = shape.tool;
this.LineColor = shape.lineColor;
this.LineWidth = shape.lineWidth;
this.LineCap = shape.lineCap;
this.FillStyle = shape.fillStyle;
this.isFilled = shape.filled;
this.isStroked = shape.stroked;
this.Points = [];
}
Shape.prototype.addPoint = function(point){
if(this.ToolName!=='pencil' && this.Points.length>1){
this.Points.pop();
}
this.Points.push(point);
};
当它在Controller内部时,它曾经工作过,但是现在在工厂里面没有。
谢谢。
编辑:
对不起,我没有分享更多代码。您在此处拥有源代码:https://github.com/michaeljota/Arheados/blob/master/app/scripts/controllers/main.js
这是控制器的代码。我想要做的是将$ scope处理的所有内容转换为Factory。有人建议使用服务,但我完全不了解服务的工作原理。
再次感谢你!
答案 0 :(得分:0)
感谢Evan Knowles,阅读我的代码,我发现错误。
我没有给构造函数赋予形状,只有tmpShape = shape;
(女巫是$ scope模型)。所以我只需将其修复为tmpShape = new Shape(shape);
,然后再次运行。
我真的很抱歉这样一个noob问题。
谢谢大家!