2013-02-05 31 views
0

我对角度来说很新颖,不能为我的生活弄清楚这段代码有什么问题。我很乐意根据需要提供更多的代码。角度模态。无法弄清楚我的控制器有什么问题

问题是没有任何角度动作正在发生。该表没有被填充,并且没有任何按钮可以执行任何操作。 http get永远不会让它到我的服务器。所以,我想知道如果任何人不介意快速查看,并让我知道我是否犯了一个愚蠢的错误。

这里是我的角度代码:

function locateController($scope, $http) { 
      $scope.init = function() { 
       $http.get('@(Url.Action<WorkorderController>(c => c.GetLocateNumbers(Model.Id)))').success(function (data) { 
        $scope.model = data; 
        $scope.locateNumber = $scope.locateNumbers(); 

        $("#loading").css('display', 'none'); 
        $("#ctrl").css('visibility', 'visible'); 
        $scope.master = angular.copy($scope.model); 
       }); 
      }; 

      $scope.init(); 

      $scope.reset = function() { 
       if (confirm('Are you sure you want to discard all your changes?')) { 
        $scope.model = angular.copy($scope.master); 
        $(".selected").removeClass("selected"); 

        $scope.locateNumber = $scope.locateNumbers(); 
       }; 
      }; 

      $scope.removeLocate = function (remove) { 
       if (confirm('Are you sure you want to remove this location number?')) { 
        var oldLines = $scope.locateNumber; 
        $scope.labor = []; 
        angular.forEach(oldLines, function (line) { 
         if (line != remove) $scope.locateNumber.push(line); 
        }); 
       } 
      }; 

      $scope.locateNumbers = function() { 
       if (!$scope.model) { 
        return null; 
       } 

       var lines = []; 
       angular.forEach($scope.model, function (item) { 
        if (item.IsActive) { 
         lines.push(item); 
        } 
       }); 
       return lines; 
      }; 

      $scope.addLocateLine = function() { 
       $scope.locateNumber.push({ 
        locationNum: '' 
       }); 
      }; 

      $scope.dirty = function() { 
       if ($scope.model === undefined) { 
        return false; 
       } 
       var isDirty = !angular.equals($scope.locateNumber, $scope.master.locateNumbers); 
       if (isDirty) { 
        $scope.notice = null; 
       } 
       return isDirty; 
      }; 

      $scope.save = function() { 
       $scope.model.Size = $scope.locateNumber.length; 
       $scope.model.locateNumbers = $scope.locateNumber; 

       $http({ 
        method: 'post', 
        url: '@(Url.Action<WorkorderController>(c => c.AssignLocate(Model.Id,null)))', 
        headers: { 
         "Content-Type": 'application/json', 
         Accepts: 'application/json' 
        }, 
        data: { wo: $scope.model } 
       }).success(function (data, status, headers, config) { 
        $scope.init(); 
       }).error(function (data, status, headers, config) { 
        alert('An error has occurred. Please try again later or contact an administrator'); 
       }); 
      }; 
     }; 

下面是HTML:

<div class="modal hide" id="assignLocate" data-ng-controller="locateController"> 
    <div class="modal-header"> 
     <button type="button" class="close" data-dismiss="modal">×</button> 
     <h3 class="addRow">Locate Number <button type="button" class="btn btn-warning btn-mini" data-ng-click="addLocateLine()">Add</button></h3> 
    </div> 
    <div> 
     <div class="span3 offset1"> 
      <table cellpadding="0" cellspacing="25" border="0" class="table" id="locateNumbers"> 
       <thead> 
        <tr> 
         <th>Locate Number</th> 
         <th>Action</th> 
        </tr> 
       </thead> 
       <tbody> 
        <tr ng-repeat="num in locateNumber"> 
         <td> 
          <ng-form name="LocateNum"> 
           <input type="text" ng-model="num.LocateNum" class="span2" required name="Input"/> 
           <span class="alert-error" ng-show="LocatenNum.Input.$error.required"><strong>*Required</strong></span> 
          </ng-form> 
         </td> 
         <td> 
          <button class="btn btn-mini btn-danger" ng-click="removeLocate(line)">Remove</button> 
         </td> 
        </tr> 
       </tbody> 
      </table> 
      <br /><br /> 
      <div> 
       <div class="span3" style="padding-bottom:25px; margin-left: 0px"> 
        <button type="button" class="btn btn-inverse" ng-click="reset()" ng-disabled="!dirty()">Reset</button> 
        <button type="button" class="btn btn-primary pull-right" ng-disabled="form.$invalid" ng-click="save()" ng-disabled="!dirty()">Save</button> 
       </div> 
      </div> 
     </div> 
    </div> 
</div> 

这里是一个JS提琴: http://jsfiddle.net/exmMY/

回答

1

这里有问题,我注意到: :

  1. HTML中没有'ng-app'。
  2. locateNumbers函数有时会返回null,但代码的其他部分预计为locateNumber为数组。

我没有例外的功能。改变你的样品可以在这里找到:http://plnkr.co/edit/A52VmYLznpNqMLq4XLK0?p=preview

+0

我的主要问题最终是因为我有2 ng-app的。但你的意见仍然是真的。感谢您花时间回答。 – PFranchise

相关问题