Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/23.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_Angularjs_Angular Ui Bootstrap_Angular Ui Typeahead - Fatal编程技术网

Javascript 角度用户界面类型预发开始使用

Javascript 角度用户界面类型预发开始使用,javascript,angularjs,angular-ui-bootstrap,angular-ui-typeahead,Javascript,Angularjs,Angular Ui Bootstrap,Angular Ui Typeahead,我的打字有问题。我有一个包含姓名和姓氏的字段,如果我键入a,我希望看到重点是姓氏,而不是名称的主要字符 这是一个例子: function TypeaheadCtrl($scope) { $scope.selected = undefined; $scope.Person = ['Jane Smith', 'John Smith', 'Sam Smith', 'John Doe','Daniel Doe']; } 当我输入S时,我只想看到简·史密斯和约翰

我的打字有问题。我有一个包含姓名和姓氏的字段,如果我键入a,我希望看到重点是姓氏,而不是名称的主要字符

这是一个例子:

 function TypeaheadCtrl($scope) {
        $scope.selected = undefined;
        $scope.Person = ['Jane Smith', 'John Smith', 'Sam Smith', 'John Doe','Daniel Doe'];
    }
当我输入S时,我只想看到简·史密斯和约翰·史密斯。有办法做到这一点吗

普朗克:

来自, 看看这一行

你可以做一些类似的事情


这意味着您有一个getPersonLastName函数,它查找$scope.Person并返回与姓氏匹配的名称和$viewValue。

我假设您希望在源数组中找到的每个列出的项都只突出显示姓氏的搜索词。如果不修改指令本身,这是不可能的,但我有一个替代解决方案,尽管它也会突出显示名字中的搜索词(如果匹配),仅显示与搜索词匹配的姓氏的人的结果。我希望这有助于:

angular.module(“firstChar”,“ui.bootstrap”);
角度.module(“firstChar”).controller(“TypeaheadCtrl”,函数($scope,$filter){
$scope.selected=未定义;
// ==========================================================
//您必须替换下面的JSON分配代码
//通过调用$http.get,获取您谈到的文件
//关于您在下面的评论:
//
//$http.get('OutAnagrafica.json').success(函数(数据){
//$scope.OutAnagrafica=数据;
// });
//
// ==========================================================
$scope.OutAnagrafica=[
{
“姓名”:“简·史密斯”
},
{
“姓名”:“约翰·史密斯”
},
{
“姓名”:“山姆·史密斯”
},
{
“姓名”:“萨姆·诺斯罗普”
},
{
“姓名”:“约翰·多伊”
},
{
“姓名”:“丹尼尔·多伊”
}
];
$scope.person=$scope.OutAnagrafica.map(函数(person)){
var nameParts=person.Name.split(“”),
name=nameParts[0],
姓氏=nameParts.slice(1).join(“”);
返回{
“姓名”:姓名,
“姓”:姓
};
});
$scope.getPersonsFromNames=函数(searchTerm){
返回$filter(“filter”)($scope.persons.map(函数(person)){
返回{
“全名”:person.name+“”+person.姓氏,
“姓”:人名
};
}), {
“姓”:搜索词
});
}
});

已选定:{{Selected}

非常感谢您的回答!这就是我想要的!但是如果我有这样一个json文件:[{“Name”:“jane Smith”},{“Name”:“John Smith”},{“Name”:“Sam Smith”}]如何拆分它?我在项目中通过一个http调用读到了这一点:$http.get('OutAnagrafica.json').success(函数(数据){$scope.OutAnagrafica=data;});您的意思是需要重新处理JSON以将姓名与姓氏分开吗?因为GetPersonsFromNames所做的基本上是从姓名中提取姓氏后进行过滤。如果您想要的是预处理,然后简化搜索,我们也可以这样做。让我知道。如果您需要的只是处理从$http.get调用中获得的JSON数据,并将其拆分为“name”和“姓氏”字段,那么您只需要执行以下操作:
$scope.persons=$scope.OutAnagrafica.map(function(person){var nameParts=person.split(“”),name=nameParts[0],姓氏=nameParts.slice(1)。join(“”);返回{“姓名”:姓名,“姓氏”:姓氏};})嗯,是的,我想我可以拆分字段,这样我就可以根据姓氏进行筛选,就像你做的第一个示例一样。最好的解决方案是什么?