gpt4 book ai didi

angularjs - html 数据列表不支持 ng-options : how to pass object

转载 作者:行者123 更新时间:2023-12-03 07:57:30 25 4
gpt4 key购买 nike

我正在移动 Angular 用户界面(angular+bootstrap)中开发一个应用程序。
在我的登录页面中,用户可以记住他们的凭据(用户名和密码)。用户的数据保存在localStorage中。

这很好用。我可以使用 datalist 在我的登录页面中加载用户:

<form name="userForm">
<div class="form-group" ng-class="{ 'has-error' : submitted && userForm.username.$invalid && !userForm.username.$pristine }">
<label for="inputEmail" class="control-label">Username</label>
<input type="text" class="form-control" id="inputEmail"
name="username" ng-model="user.username" list="UserMemoList"
required>
</div>

<datalist id="UserMemoList">
<option ng-repeat="item in userMemoList track by $index" ng-click="setChange(item)"
value="{{item.username}}" >
</option>
</datalist>

我可以选择我想要的 item.username,但我无法选择相应的 item.password。
我的问题是 datalist 不像 select 那样工作,而且我不能使用 ng-options。我必须使用 option+value 将我的值传递给输入。
<div class="form-group" ng-class="{ 'has-error' : submitted && userForm.password.$invalid && !userForm.password.$pristine }">
<label for="inputPassword" class="control-label">Password</label>
<input name="password" type="password" class="form-control" id="inputPassword"
ng-model="user.password" required>
</div>

我可以使用 ng-change="theSelectedUserIs(item)",但我无法传递 item 对象,因为 datalist 与用户名输入相关,所以我需要传递 item.username。

任何的想法?
我不想使用预先输入,因为实际上在 bootstrap3 中已弃用或添加其他库/js/css。
我只想使用 angular 和 html 来做到这一点。

我的 Controller :
$scope.userMemoList = JSON.parse(localStorage.getItem('userList'));
var user = {};
LoginService.setUser(user);

userMemoList 是一个对象数组,例如:
{“用户名”:“管理员”,“密码”:“管理员”},...

谢谢。

最佳答案

您也可以像这样传递 html data-id

在你的 Angular js文件中

// when input name textbox change, check the value is same with datalist value or not. If value same, then bind that item.password to angular password model.
$scope.$watch "user.username", (newValue) ->
if newValue != null && newValue.lenght > 0
$("#locationlist option").each (index) ->
if $(this).val() == newValue
$scope.user.password = $(this).data("id") // this line will set your password text field

在你看来
// pass user password via html5 (data-id) element like below
<datalist id="UserMemoList">
<option ng-repeat="item in userMemoList track by $index" ng-click="setChange(item)"
value="{{item.username}}" "data-id" = {{item.password}} >
</option>
</datalist>

关于angularjs - html 数据列表不支持 ng-options : how to pass object,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23112662/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com