0

モーダル ウィンドウを使用して編集したい項目のリストがあります。各アイテムの「編集」ボタンをクリックしたときにモーダルウィンドウを開くディレクティブを作成し、アイテム自体をモーダルに渡します(「フォームオブジェクト」属性を使用)。

しかし、私はこの奇妙な振る舞いをします:

{{formObject}}は常に最後のアイテムを出力しますが、console.log(scope.formObject)正しいアイテムを出力します。

これはプランカーです: http://plnkr.co/edit/N5ta15yctYFgmQPqwXr4

4

1 に答える 1

1

compileここでは関数は必要ありません。これは機能します:

var myAppModule = angular.module('myApp', []);

  myAppModule.controller('TextController',
        function($scope) {          
            $scope.userModel = [{id:'1',name:'user1'},{id:'2',name:'user2'},{id:'3',name:'user3'}];
        });

    myAppModule.directive('formModal', ['$http', '$compile', function($http, $compile) {
        return {
            scope: {
                formObject: '='
            },
            link: function(scope, element, attrs){
                var template, $element, loader;

                loader = $http.get('modal.html')
                        .success(function(data) {
                            template = data;                               
                        });

                loader.then(function() {
                    $element = angular.element($compile(template)(scope));
                });

                scope.close = function() {
                    $element.modal('hide');
                };

                element.on('click', function(e) {
                    e.preventDefault();
                    $element.modal('show');
                });

            }
        }
    }]);
于 2013-07-05T13:16:55.413 に答える