如何在ng-repeat之外访问ng-model值?

时间:2019-02-13 10:26:36

标签: angularjs angularjs-ng-repeat angularjs-ng-model

我有一个表,其中每个<input>中都有<td>个字段,这些字段在ng-repeat中重复。在某些情况下,某些输入可能带有null值。我想访问ng-model值,以检测用户何时更改ng-model!=null的值以启用按钮来处理服务器中的数据。 那就是ng-repeat中的代码:

<tbody>
    <tr ng-repeat="data in resultValue=(vm.ExcelDataDialog) | filter: FilterNullData" class="fade">
        <td style="min-width: 2px !important;width:2px !important">{{$index + 1}}</td>
        <td>
         <input type="text" ng-model="data.Pershkrimi" ng-model-options="{ 'updateOn': 'blur' }" ng-class="{validate_for_creating_new_ofer: data.Pershkrimi != null, input_red: data.Pershkrimi == null}" />
        </td>
        <td>
         <input type="text" ng-model="data.Klienti" ng-model-options="{ 'updateOn': 'blur' }" ng-class="{validate_for_creating_new_ofer: data.Klienti != null, input_red: data.Klienti == null}" />
        </td>
        <td>
        <input type="text" ng-model="data.KodiArtikullit" ng-model-options="{ 'updateOn': 'blur' }" ng-class="{validate_for_creating_new_ofer: data.KodiArtikullit != null, input_red: data.KodiArtikullit == null}" />
         </td>
         <td>
         <input type="number" ng-model="data.Sasia" ng-model-options="{ 'updateOn': 'blur' }" ng-class="{validate_for_creating_new_ofer: data.Sasia != null, input_red: data.Sasia == null}" />
         </td>
         <td>
         <input type="number" ng-model="data.Cmimi" ng-model-options="{ 'updateOn': 'blur' }" ng-class="{validate_for_creating_new_ofer: data.Cmimi != null, input_red: data.Cmimi == null}" />
         </td>
          <td>
          <input type="text" ng-model="data.DateFillimi" ng-model-options="{ 'updateOn': 'blur' }" ng-class="{validate_for_creating_new_ofer: data.DateFillimi != null, input_red: data.DateFillimi == null}" />
          </td>
           <td>
           <input type="text" ng-model="data.DateMbarimi" ng-model-options="{ 'updateOn': 'blur' }" ng-class="{validate_for_creating_new_ofer: data.DateMbarimi != null, input_red: data.DateMbarimi == null}" />
           </td>
    </tr>
</tbody>

我检查控制器中的数据是否为空,但是我想检查何时将它们归档在视图中以启用按钮。 有按钮代码:

 <md-button type="submit" id="create_offer"
            ng-click="vm.AddOfferByImportingExcel()"
            class="send-button md-accent md-raised"
            aria-label="krijo_oferte" 
            ng-disabled = "data.Pershkrimi == null">
   Krijo ofertë
 </md-button>

2 个答案:

答案 0 :(得分:0)

可能是范围问题。如果不了解控制器的定义方式以及模板中如何使用伪指令,很难准确地说明问题所在。如果您使用的是ng-repeat,它将把作用域与正在循环的对象隔离开来。

ng-repeat='data in datas'

将仅在该元素/指令的上下文中提供数据。如果需要其他可用变量,则需要

ng-repeat='data in datas' other-variable='anotherVarYouNeed'

答案 1 :(得分:0)

如果任何值为null / empty,则验证输入并禁用按钮的最简单方法是添加角度形式验证。您需要做的就是用一种形式(如果尚未完成)包围您的代码,并确保它具有一个s3event = JSON.parse(JSON.parse(sqsbody).Message) 。然后将name添加到所需的每个输入中。然后,您可以访问ng-required="true"来确定表单是否有效。

formName.$invalid