【问题标题】:Could you help resolve this logic issue?你能帮忙解决这个逻辑问题吗?
【发布时间】:2016-04-22 09:12:14
【问题描述】:

exampleDEMO

您可以在链接上方查看代码。

其实我是想根据按钮组的输入来控制所有与按钮组名称相同的输入形式。

例如,我在“First”按钮右侧的输入表单中输入值,

同时,所有名称为“First”的输入表单都应更改

只有按钮组输入一个。

对不起,我的英语水平很差,希望你能理解!

<div ng-app="app" ng-controller="AppCtrl">
// list group
  <div>
    <ul>
      <li ng-repeat="item in items">
        <span>{{item.name}}</span>
        <input type="text" ng-model="price">
      </li>
    </ul>
  </div>


// button group
  <div>
    <ul class="list-btn">
      <li ng-repeat="btn in btns">
        <button>{{btn}}</button>
        <input type="text" ng-model="price_all">    
      </li>
    </ul>
  </div>  
</div>


angular.module('app', [])
.controller('AppCtrl', ['$scope', function ($scope) {
    $scope.items = [
    {id: 1, name: 'First'},
    {id: 2, name: 'Second'},
    {id: 3, name: 'Third'},
    {id: 4, name: 'First'},
    {id: 5, name: 'Second'},
    {id: 6, name: 'Third'},
    {id: 7, name: 'First'},
    {id: 8, name: 'Second'},
    {id: 9, name: 'Third'},
  ]

  $scope.btns = ['First', 'Second', 'Third'];

}])

【问题讨论】:

  • 你能把代码放在帖子里吗? jsFiddle 很棒,但更好to put you code in the question
  • 您需要单击按钮来反映更改还是立即反映?
  • 使用服务来存储数据,您将自动同步所有数据
  • 你们可以点击示例链接!
  • @KarthikMR 按钮只是为了向后端提交数据,你可以忽略它

标签: javascript html angularjs


【解决方案1】:

由于 ng-model 在 li 标签中重复出现,双向绑定只能在该 li 标签内部起作用,而不是在它外部。所以,你需要使用 onkeyup 事件。

提琴手中的工作解决方案 - https://jsfiddle.net/fcoLmd2n/

在 html 中进行这些更改:

<li ng-repeat="item in items">
    <span>{{item.name}}</span>
    <input type="text" class="{{item.name}}" ng-model="price">
  </li>

<li ng-repeat="btn in btns">
    <button>{{btn}}</button>
    <input type="text" btnType="{{btn}}" ng-model="price_all" onkeyup="Update(this);">
</li>

Js文件的变化:

function Update(obj)
{
    var className = obj.getAttribute('btnType');
    var txtBoxElements = document.getElementsByClassName(className);
    for(var i=0;i<txtBoxElements.length;i++)
    {
        txtBoxElements[i].value= obj.value
    }
}

使用 Jquery 进行优化

【讨论】:

  • 对,我也觉得应该用jquery来控制。谢谢你一百万!
  • 我只是给了你逻辑。您可以根据需要进行调整,也可以使用 jquery。编码愉快!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-01-24
  • 2021-08-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-15
  • 1970-01-01
相关资源
最近更新 更多