Javascript 按键查找模型

Javascript 按键查找模型,javascript,angularjs,Javascript,Angularjs,我想通过键从模型查询中获得一个“行”。我怎样才能做到这一点? 我在找像这样的东西 {{mysettings.backcolor}searchby(datuak.ref)}或类似的东西 事实上,我有一个带有数据的模型,还有一个带有背景和前景色信息的模型。它们之间的关系是“ref”列 在打印表格时,在ng repeat上,我希望通过id查询得到前景/背景色 有什么帮助或线索吗 我的控制器中有两种型号: $scope.mysettings = [ { ref: '3CI00001', ba

我想通过键从模型查询中获得一个“行”。我怎样才能做到这一点? 我在找像这样的东西

{{mysettings.backcolor}searchby(datuak.ref)}或类似的东西

事实上,我有一个带有数据的模型,还有一个带有背景和前景色信息的模型。它们之间的关系是“ref”列

在打印表格时,在ng repeat上,我希望通过id查询得到前景/背景色

有什么帮助或线索吗

我的控制器中有两种型号:

$scope.mysettings = [
      { ref: '3CI00001', backcolor: '#000000', forecolor: '#ffffff' },
      { ref: '3CI00002', backcolor: '#5cb85c', forecolor: '#000000' }
    ];
这是另一个模型:

$scope.datuak = [
      {
        linea: '1',
        egunak:[{
          fetxa: '2014/05/19',
            turnoak: [
            { 
              turno: "1", 
              ordenes: [
                { ref: '3CI00001'},
                { of: 'OF000013'}
              ]  
            },
            { 
              turno: "2", 
              ordenes: [
                { ref:'3CI00001'},
                { of:'112233'},
                { ref:'3CI00001'}
              ]
            },
            {
              turno: "3",
              ordenes: [
                { ref:'3CI00001'}
              ]
            }
            ]},
          {fetxa: '2014/05/20'},
          {fetxa: '2014/05/21',
            turnoak: [
            { 
              turno: "1", 
              ordenes: [
                { ref: '3CI00001'},
                { of: 'OF200013'}
              ]  
            },
            { 
              turno: "2", 
              ordenes: [
                { ref:'3CI00001'},
                { of:'OF232233'},
                { of:'OF289977'}
              ]
            },
            {
              turno: "3",
              ordenes: [
                { ref:'3CI00001'},
                { of:'OF200000'},
                { ref:'3CI00001'},
                { of:'OF200000'},
                { ref:'3CI00001'}
              ]
            }
          ]},
          {fetxa: '2014/05/22'},
          {fetxa: '2014/05/23'},
          {fetxa: '2014/05/24'},
          {fetxa: '2014/05/25'}
        ]
      },
      {
        linea: '2',
        egunak:[
          { fetxa: '2014/05/19'},
          {
          fetxa: '2014/05/20',
            turnoak: [
            { 
              turno: "1", 
              ordenes: [
                { ref: '3CI00001'},
                { of: '2OF000013'}
              ]  
            },
            { 
              turno: "2", 
              ordenes: [
                { ref:'3CI00001'},
                { of:'2OF2233'},
                { ref:'3CI00001'}
              ]
            },
            {
              turno: "3",
              ordenes: [
                { ref:'3CI00001'}
              ]
            }
          ]},
          {fetxa: '2014/05/21'},
          {
          fetxa: '2014/05/22',
            turnoak: [
            { 
              turno: "1", 
              ordenes: [
                { ref: '3CI00001'},
                { of: '2OF200013'}
              ]  
            },
            { 
              turno: "2", 
              ordenes: [
                { ref:'3CI00001'},
                { of:'2OF232233'},
                { ref:'3CI00001'}
              ]
            },
            {
              turno: "3",
              ordenes: [
                { ref:'3CI00001'},
                { of:'2OF200000'},
                { ref:'3CI00001'},
                { of:'2OF200000'},
                { ref:'3CI00001'}
              ]
            }
          ]},
          {fetxa: '2014/05/23'},
          {fetxa: '2014/05/24'},
          {fetxa: '2014/05/25'}
        ]
      }
    ];
对于这两种模式,我的观点如下:

        <tbody>
          <tr ng-repeat="lineas in datuak">
            <td class="tdlinea">Linea:{{ lineas.linea }}</td>
            <td data-ng-repeat="nireindex in [0,1,2,3,4,5,6]">
              <table class="table text-center table-condensed">
                <thead>
                  <th>Mañana</th>
                  <th>Tarde</th>
                  <th>Noche</th>
                </thead>
                <tbody>
                  <tr>
                      <td>
                        <table>
                          <tr ng-repeat="orden in lineas.egunak[nireindex].turnoak[0].ordenes" ng-if="checkStatus(lineas.egunak[nireindex].fetxa,nireindex)">
                            <td>{{ orden.ref }} {{ orden.of }}   </td>
                          </tr>
                        </table>
                      </td>
                      <td>
                        <table>
                          <tr ng-repeat="orden in lineas.egunak[nireindex].turnoak[1].ordenes" ng-if="checkStatus(lineas.egunak[nireindex].fetxa,nireindex)"><td>{{ orden.ref }} {{ orden.of }}</td></tr>
                        </table>
                      </td>
                      <td>
                        <table>
                          <tr ng-repeat="orden in lineas.egunak[nireindex].turnoak[2].ordenes" ng-if="checkStatus(lineas.egunak[nireindex].fetxa,nireindex)"><td>{{ orden.ref }} {{ orden.of }}</td></tr>
                        </table>
                      </td>                             
                  </tr>
                </tbody>
              </table>
            </td>
          </tr> <!-- lineas -->
        </tbody>
$scope.mysettings = {
  3CI00001: { ref: '3CI00001', backcolor: '#000000', forecolor: '#ffffff' },
  3CI00002: { ref: '3CI00002', backcolor: '#5cb85c', forecolor: '#000000' }
};
{{ mySetting | searchBy : 'ref' : linea.ref }} 

线性:{{lineas.Linea}}
玛尼娜
塔尔德
诺什
{{orden.ref}}{{orden.of}}
{{orden.ref}}{{orden.of}}
{{orden.ref}}{{orden.of}}

实现这一点的简单方法是重构模型,使其行为类似于关联数组,而不是公共数组。结果应该是这样的:

        <tbody>
          <tr ng-repeat="lineas in datuak">
            <td class="tdlinea">Linea:{{ lineas.linea }}</td>
            <td data-ng-repeat="nireindex in [0,1,2,3,4,5,6]">
              <table class="table text-center table-condensed">
                <thead>
                  <th>Mañana</th>
                  <th>Tarde</th>
                  <th>Noche</th>
                </thead>
                <tbody>
                  <tr>
                      <td>
                        <table>
                          <tr ng-repeat="orden in lineas.egunak[nireindex].turnoak[0].ordenes" ng-if="checkStatus(lineas.egunak[nireindex].fetxa,nireindex)">
                            <td>{{ orden.ref }} {{ orden.of }}   </td>
                          </tr>
                        </table>
                      </td>
                      <td>
                        <table>
                          <tr ng-repeat="orden in lineas.egunak[nireindex].turnoak[1].ordenes" ng-if="checkStatus(lineas.egunak[nireindex].fetxa,nireindex)"><td>{{ orden.ref }} {{ orden.of }}</td></tr>
                        </table>
                      </td>
                      <td>
                        <table>
                          <tr ng-repeat="orden in lineas.egunak[nireindex].turnoak[2].ordenes" ng-if="checkStatus(lineas.egunak[nireindex].fetxa,nireindex)"><td>{{ orden.ref }} {{ orden.of }}</td></tr>
                        </table>
                      </td>                             
                  </tr>
                </tbody>
              </table>
            </td>
          </tr> <!-- lineas -->
        </tbody>
$scope.mysettings = {
  3CI00001: { ref: '3CI00001', backcolor: '#000000', forecolor: '#ffffff' },
  3CI00002: { ref: '3CI00002', backcolor: '#5cb85c', forecolor: '#000000' }
};
{{ mySetting | searchBy : 'ref' : linea.ref }} 
这样,只需执行mysettings[id].backcolor,就可以通过对象的id访问对象


干杯

您可以查看angular js过滤器:

如果需要更进一步,您可以创建自己的,使用array.filter()方法:

然后在循环中使用它,如下所示:

        <tbody>
          <tr ng-repeat="lineas in datuak">
            <td class="tdlinea">Linea:{{ lineas.linea }}</td>
            <td data-ng-repeat="nireindex in [0,1,2,3,4,5,6]">
              <table class="table text-center table-condensed">
                <thead>
                  <th>Mañana</th>
                  <th>Tarde</th>
                  <th>Noche</th>
                </thead>
                <tbody>
                  <tr>
                      <td>
                        <table>
                          <tr ng-repeat="orden in lineas.egunak[nireindex].turnoak[0].ordenes" ng-if="checkStatus(lineas.egunak[nireindex].fetxa,nireindex)">
                            <td>{{ orden.ref }} {{ orden.of }}   </td>
                          </tr>
                        </table>
                      </td>
                      <td>
                        <table>
                          <tr ng-repeat="orden in lineas.egunak[nireindex].turnoak[1].ordenes" ng-if="checkStatus(lineas.egunak[nireindex].fetxa,nireindex)"><td>{{ orden.ref }} {{ orden.of }}</td></tr>
                        </table>
                      </td>
                      <td>
                        <table>
                          <tr ng-repeat="orden in lineas.egunak[nireindex].turnoak[2].ordenes" ng-if="checkStatus(lineas.egunak[nireindex].fetxa,nireindex)"><td>{{ orden.ref }} {{ orden.of }}</td></tr>
                        </table>
                      </td>                             
                  </tr>
                </tbody>
              </table>
            </td>
          </tr> <!-- lineas -->
        </tbody>
$scope.mysettings = {
  3CI00001: { ref: '3CI00001', backcolor: '#000000', forecolor: '#ffffff' },
  3CI00002: { ref: '3CI00002', backcolor: '#5cb85c', forecolor: '#000000' }
};
{{ mySetting | searchBy : 'ref' : linea.ref }} 

您可以做的是循环浏览设置,然后循环浏览每个设置对象并返回匹配的项目:

function findSetting(s) {

   //loop through all settings-->
   for (var i = 0; i < mySettings.length; i++) {

       //if setting is an object loop through keys in object-->
       if (typeof (mySettings[i]) === 'object') {

           for (var key in mySettings[i]) {
               if (mySettings[i][key] === s) {

                   //return match-->
                   return mySettings[i];
               }
           }
       }
   }
}
函数查找设置{
//循环所有设置-->
对于(var i=0;i
if(typeof(mySettings[i])==“object”){
for(mySettings[i]中的var键){
if(mySettings[i][key]==s){
//返回匹配-->
返回我的设置[i];
}
}
}
}
}

是小提琴

但是你怎么能完成这个句子呢?{{mysettings{orden.ref}.backcolor}}?{{mysettings[order.ref].backcolor}