Javascript AngularJS x-可编辑带条件的前置类型

Javascript AngularJS x-可编辑带条件的前置类型,javascript,jquery,angularjs,typeahead,x-editable,Javascript,Jquery,Angularjs,Typeahead,X Editable,尝试使用angular和x-editable实现以下行为: 我有一个添加用户表单,其中包含1个必需输入:Name。 添加用户时,有两个选项: 1.如果用户存在于$scope.names中,我将使用typeahead显示选项列表->确定 2.如果用户是新用户,不在$scope.names中,则我应该有第二封必需的输入电子邮件,并且我应该仅在typeahead发现与我的姓名输入不匹配时显示该电子邮件 这就是我被困的地方。。。我真的不知道如何应用以下原始条件: 如果用户不在用户->显示电子邮件输入中

尝试使用angular和x-editable实现以下行为:

我有一个添加用户表单,其中包含1个必需输入:Name。 添加用户时,有两个选项: 1.如果用户存在于$scope.names中,我将使用typeahead显示选项列表->确定 2.如果用户是新用户,不在$scope.names中,则我应该有第二封必需的输入电子邮件,并且我应该仅在typeahead发现与我的姓名输入不匹配时显示该电子邮件

这就是我被困的地方。。。我真的不知道如何应用以下原始条件: 如果用户不在用户->显示电子邮件输入中

任何帮助都将不胜感激! 这是你的电话号码 !


我会在作为电子邮件输入的span中添加一些类似于:ng hide=shouldHide的内容

现在,shoulHide函数应该总是从名称输入中获取值,并对照名称列表进行检查,如果找到,则返回true,如果未找到,则返回false

希望这能帮上忙,我没有时间把它弄得一团糟,对不起


[编辑]您可以在$scope.investor.name中找到名称输入的值。据我所知,我从未使用过x-editable。

如前所述,您可以尝试获取输入值并检查列表中是否存在该值,如果该值不在列表中,则将显示可选输入

$scope.shouldHide = function(index) {
    //get the typeahead input value:
    var nameInput = document.getElementsByName('name')[0]
    var nameValue = null
    if (nameInput){
      nameValue=document.getElementsByName('name')[0].value;
    }

    if (nameValue){
    //check if typeahead input value is in list
    $scope.names = ['User 1', 'User 2', 'User 3', 'User 4', 'User 5', 'User 6'];
       return $scope.names.indexOf(nameValue) >=0
    }   
    return true;
};

我拨开你的小提琴,在这里添加了解释行为:

嗨,保罗,谢谢你的输入,我在这里尝试了一些东西,但仍然不起作用,也许我遗漏了一些东西?
$scope.shouldHide = function(index) {
    //get the typeahead input value:
    var nameInput = document.getElementsByName('name')[0]
    var nameValue = null
    if (nameInput){
      nameValue=document.getElementsByName('name')[0].value;
    }

    if (nameValue){
    //check if typeahead input value is in list
    $scope.names = ['User 1', 'User 2', 'User 3', 'User 4', 'User 5', 'User 6'];
       return $scope.names.indexOf(nameValue) >=0
    }   
    return true;
};