Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将函数的返回字符串添加为类名_Javascript_Ember.js - Fatal编程技术网

Javascript 将函数的返回字符串添加为类名

Javascript 将函数的返回字符串添加为类名,javascript,ember.js,Javascript,Ember.js,基本上,我有一个EmberJS应用程序。在其中,我想显示一个不同的验证状态,为此,我想更新html类属性。这些表单元素中的每一个都可以有三个不同的名称:“(空)、“has success”或“has error” 基本上,我想将类名绑定到一个computed属性上,该属性将根据表单的状态返回这三个属性中的任何一个(非常类似于AngularJS ng类) 我想要这样的东西: validationState: function() { if(element.state === "pristine

基本上,我有一个EmberJS应用程序。在其中,我想显示一个不同的验证状态,为此,我想更新html类属性。这些表单元素中的每一个都可以有三个不同的名称:“(空)、“has success”或“has error”

基本上,我想将类名绑定到一个computed属性上,该属性将根据表单的状态返回这三个属性中的任何一个(非常类似于AngularJS ng类)

我想要这样的东西:

validationState: function() {
  if(element.state === "pristine") {
     return "";
  } 
  else if(element.state === "valid") {
     return "has-success";
  }
  else{
     return "has-error";
  }
}
在模板中,我希望这样:

<input class="{{ validationState }} form-control">

这是可行的吗?如果是,最好的方法是什么?创建自定义助手?或者已经有办法做到这一点了吗?

使用帮助器并将属性设置为计算属性。这看起来像这样

{{input value=inputValue class=validationState}}

App.IndexController = Em.ArrayController.extend({
  inputValue: 'test',
  validationState: function() {
    if(this.get('inputValue')) {
      return 'valid';
    }
    return 'empty';
  }.property('inputValue')
});

使用bind attr帮助程序,并将validationState设置为计算属性。一旦htmlbars稳定,您就可以在没有bind attr helper的情况下执行此操作。这不起作用,因为我必须返回true或false,然后为每个案例场景定义一个名称。我想要的是返回真或假,或者了解哪一个是三种情况。这不是你想要做的吗?是的。。。天哪,我发誓我试过了,但没用。。我感到羞愧,非常感谢!这篇文章是我的答案,我会接受的!