$ mdDialog.prompt抛出异常,但该函数在确认时工作正常

时间:2016-03-16 22:27:13

标签: javascript angularjs angular-material

出于某种原因,我的提示对话框在我的yo angular fullstack应用程序中停止工作。

我搜索了一个解决方案,告诉我更新我的角度,我做了,但它没有解决问题。

var pageNumber = 0

let myArray:Array<String> = [sprite1, sprite2, sprite3, sprite4, sprite5, sprite6, sprite7, sprite8, sprite9, sprite10, sprite11, sprite12]

for var i in 0..<4 {
    let item = myArray[pageNumber*4 + i]
    let gofoodsprite = SKSpriteNode(imageNamed:"\(item)")
    gofoodsprite.name = item
    gofoodsprite.position = CGPointMake(gobuttonX, 275)
    gobuttonX = gobuttonX + 105
    self.addChild(gofoodsprite)
}

每当我调用该函数时,我都会收到一条错误,指出TypeError:$ mdDialog.prompt不是函数。

如果我将对话框更改为.confirm并删除占位符,则可以正常使用

2 个答案:

答案 0 :(得分:5)

我意识到答案已被接受,但它没有解决我的问题所以我想提供一个替代建议。

我遇到了完全相同的情况,结果发现我使用的是尚未引入.prompt()的旧版Angular Material。如果您查看docs for the version I was using(1.0.5),您将在演示中看到没有提示对话框的选项。但是如果你看一下docs for the latest version(撰写本文时为1.1.0),则会出现提示选项。

希望这能帮助任何像我一样遇到这个问题的人。

答案 1 :(得分:1)

编辑: 在javascript中,函数的变量在运行时定义:

//This code throw an error
getValue();
var getValue = function(){};

你必须在调用它之前声明你的变量函数:

//Ok
var getValue = function(){};
getValue();

您还可以编写类似

的内容
//Ok because code block is parsed before runtime
getValue();
function getValue(){};

所以,你的编辑在这里编辑 https://plnkr.co/edit/YqeyaLqW2B6xn4VHcVlQ?p=preview