2014-04-15 56 views
0

我是一个真正的AngularJS和JS noob,当用户双击某个元素时,他会尝试输入一个输入,但是我无法使其工作。目前我有这个错误...类型错误:未定义使用AngularJS输入一个输入

无法设置属性 '编辑' 这是我的代码...

var reportsControllers = angular.module('vdApp', [], function($interpolateProvider) { 
    $interpolateProvider.startSymbol('[['); 
    $interpolateProvider.endSymbol(']]'); 
}); 

reportsControllers.controller('ApplicantCtrl', ['$scope', '$http', function($scope, $http) { 
    $http.get('http://myurl.com').success(function(data) 
    { 
     $scope.applicants = data; 
    }); 

    angular.forEach($scope.applicants, function() { 
     editing: false; 
    }); 

    $scope.orderProp = 'dob'; 

    $scope.editApplicant = function(applicant) { 
     applicant.editing = true; 
    }; 

    $scope.doneEditing = function(applicant) { 
     applicant.editing = true; 
    }; 

}]); 

和我的HTML /刀模板...

<div ng-app="vdApp" ng-controller="ApplicantCtrl"> 
    <div class="input-group spacer-bottom-2x"> 
     <span class="input-group-btn"><button class="btn btn-default btn-lg" type="button">Filter:</button></span> 
     <input class="form-control input-lg" ng-model="query" /> 
    </div>   

    <div class="table-responsive"> 
     <table class="table table-striped table-bordered"> 
      <thead> 
       <tr> 
        <th width="15%"><a href="" ng-click="orderProp='fname'">Name</a></th> 
        <th width="10%"><a href="" ng-click="orderProp='surname'">DOB</a></th> 
        <th width="5%">CV</th> 
        <th width="25%"><a href="" ng-click="orderProp=''">Tel</a></th> 
        <th width="25%"><a href="" ng-click="orderProp=''">Email</a></th> 
        <th width="10%"><a href="" ng-click="orderProp='postTown'">Post Town</a></th> 
        <th width="20%"><a href="" ng-click="orderProp='page_title'">Interest</a></th> 
        <th width="10%"><a href="" ng-click="orderProp='created_at'">Applied</a></th> 
       </tr> 
      </thead> 
      <tbody> 
       <tr ng-repeat="app in applicants| filter: query | orderBy: orderProp"> 
        <td>[[ app.fname ]] [[ app.surname ]]</td> 
        <td>[[ app.dob ]]</td> 
        <td><div ng-if="app.cv != ''"><a href="[[ app.cv ]]" target="_blank">View</a></div></td> 
        <td > 
         <span ng-hide="applicant.editing" ng-dblclick="editApplicant(applicant)">[[ app.tel ]]</span> 
         <div class="form-group" ng-show="applicant.editing" ng-model="app.id" ng-blur="doneEditing(applicant)" autofocus> 
          <input class="form-control input-lg" ng-model="query" /> 
         </div> 
        </td> 
        <td>[[ app.email ]]</td> 
        <td>[[ app.postTown ]]</td> 
        <td>[[ app.page_title ]]</td> 
        <td>[[ app.created_at ]]</td> 
       </tr> 
      </tbody> 
     </table> 
    </div> 
</div> 

任何人都可以帮助我,告诉我我做错了什么?

谢谢!

+0

我想你应该使用例如。 {{app.fname}}而不是[[app.fname]],尽管这不是你问题的原因。 –

+0

@MikeChamberlain这是因为我使用的是刀片模板,所以我必须更换括号以避免冲突 – bencarter78

回答

4

您声明您的中继器为ng-repeat="app in applicants",但随后尝试ng-dblclick="editApplicant(applicant)ng-show="applicant.editing"

applicant不存在 - 您应该使用您的中继器循环变量app来代替。

+0

谢谢!工作过一种享受。 – bencarter78