首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何根据表达式的结果默认Ember Model的值?

如何根据表达式的结果默认Ember Model的值?
EN

Stack Overflow用户
提问于 2014-04-12 06:36:45
回答 2查看 39关注 0票数 1

下面的代码给出了一个错误:未捕获的TypeError:未定义的不是一个函数

有没有人能帮我把它合理地组织起来,这样我就可以根据这个表达式默认一个值?

代码语言:javascript
运行
复制
,defaultPersonType: function defaultPersonType() {
        console.log(this)
        var people = this.get("store").all("person").content
            ,primaryFound = false
            ,spouseFound = false
            ,dependantFound = false
            ,defaultType = "CHILD"
        for (var i = 0; i < people.length; i++) {
            switch(people.get("personType")) {
                case "PRIMARY":
                    primaryFound = true
                    break
                case "SPOUSE":
                    spouseFound = true
                    break
                case "UNMARRIED_PARTNER":
                    spouseFound = true
                    break
                default:
                    dependantFound = true
                    break

            }
            if (!primaryFound) {
                defaultType = "PRIMARY"
            }
            if (!!dependantFound) {
                defaultType = "CHILD"
            }
            if (!spouseFound) {
                defaultType = "SPOUSE"
            }
        }
        return DS.attr('string', {defaultValue: function() {return defaultType}})
    }
    ,personType: (function() {
        return this.defaultPersonType()
    }())
EN

Stack Overflow用户

发布于 2014-04-12 14:44:26

嗯,你的

代码语言:javascript
运行
复制
this

匿名函数中的错误。因此,执行以下操作:

代码语言:javascript
运行
复制
function() { return this.defaultPersonType(); }.bind(this)())
票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23023715

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档