2016-08-30 7 views
0

Ich habe ein Problem. Ich defind nur meine bearbeiten Form in ng-repeat, wenn Klick-Taste 'Bearbeiten' mit dem ObjektAngularJS ng-show dynamic funktioniert nicht richtig

<tr ng-repeat="account in accountLst"> 
    <td ng-hide="edit{{account.accountName}}"> 
     {{account.fullName}} 
    </td> 
    <td ng-show="edit{{account.accountName}}"> 
     I want to show this line and hidden other! 
    </td> 
    <td ng-hide="edit{{account.accountName}}"> 
     {{account.accountName}} 
    </td> 
    <td ng-hide="edit{{account.accountName}}"> 
     {{account.email}} 
    </td> 
    <td> 
     <button ng-click="editaccount(account)">Edit</button> 
    </td> 
</tr> 

Und das ist meine editaccount Funktion

$scope.editaccount = function (obj) { 
    var res = false; 
    var tmp = 'edit'.concat(obj.accountName); 
    for(var i = 0; i < $scope.accountLst.length; i++) { 
     if(angular.equals(obj.accountName, $scope.accountLst[i].accountName)) { 
     res = true; 
     break; 
     } else if(!angular.equals(obj.accountName, $scope.accountLst[i].accountName)){ 
     res = false; 
     } 
    } 
    //$scope.edit123 = true; 
    $scope.$tmp = res; 
    console.log(tmp + ' is ' + $scope.$tmp); 
    return res; 
} 

Alles funktioniert gut, außer:
Beispiel, I-Eingang accountName = '123', dann
Wenn ich $ scope.edit123 = true definiere; => es funktioniert,
Wenn durch $ scope. $ tmp = true; => nicht mehr arbeiten? (tmp = edit123 auch);

Bitte helfen Sie mir - ich bin Neuling.
Hier ist mein voller Code: https://jsfiddle.net/otp3ooyd/3/

+1

Sie haben Fehler bekam, dass js Fiedler ... plus ein String-Wert ergibt keine falsy/trusy ... – Leo

+0

@ Regen. Ich habe Zweifel an Ihrer Code-Validierung. Ich denke, es sollte OR sein (||) Bedingung wo an Stelle von UND (&&) - MukulSharma

+0

@Leo Ich weiß, nur in einer Datei kombinieren und es wird gut funktionieren! – Rain

Antwort

0

Sie müssen das Semikolon nach $ Scope angeben. $ Tmp = true.

Ich habe das gleiche in Ihrem jsfiddle Code bestätigt.

+0

Ich habe versucht, alles Mögliche zu tun, aber immer noch das gleiche Problem. Dieser Fehler passiert einfach, wenn ich meinen Code kopiere. – Rain

0

versuchen auf diese Weise kann es funktionieren.

var tmp = "edit123" $ scope [tmp] = true

+0

Bitte lesen Sie meinen vollständigen Code, edit123 ist nur mein Test, wenn accountName = '123' – Rain

Verwandte Themen