2015-02-16 3 views
0

Я пытаюсь написать простую директиву, которая позволяет пользователю редактировать определенную переменную, но когда я пытаюсь обновить родительскую переменную, она не работает.Директива Angularjs с двунаправленной привязкой не работает

это мой HTML:

<p class="scene-field-name editable-name" editable="foo"> {{foo}} </p> 

и директива:

myApp.directive('editable', function ($window, $compile) { 
    return { 
     restrict: "A", 
     template: '<div class="editable-value" ng-hide="editorOn">{{value}} <a class="edit-a" ng-click="editorOn = true">edit</a></div>' + 
'<div class="editable-editor" ng-show="editorOn">' + 
    '<input type="text" value="{{tmpValue}}" />' + 
    '<a ng-click="setValue()">OK</a>' + 
'</div>', 
     scope: { 
      value: "=editable" 
     }, 
     controller: function($scope) { 
      $scope.tmpValue = $scope.value; 
      $scope.editorOn = false; 

      $scope.setValue = function() { 
       $scope.value = $scope.tmpValue; 
       $scope.editorOn = false; 
      } 
     } 
    }; 

здесь в jsfiddle: http://jsfiddle.net/4srx2z0c/2/

вы можете увидеть, что при нажатии кнопки ОК это не сохранить значение обратно в родительском пространстве ...

ответ

2

Вы не привязываете вход к tmpValue. Вместо <input type="text" value="{{tmpValue}}" /> у вас должно быть <input type="text" ng-model="tmpValue" />.

+0

Конечно ... спасибо! –

Смежные вопросы