1

ディレクティブに値を渡そうとしています。ディレクティブは、jquery プラグインKnobを統合するために使用されます

JSFIDDLE: http://jsfiddle.net/Tropicalista/TH87t/93/

私はこのコードを持っています:

var App = angular.module('Knob', []);
App.controller('myCtrl', function($scope) {
$scope.number = 24;
})

App.directive('knob', function() {
return {
    restrict: 'A',
    link: function(scope, element, attrs) {
        $(element).knob().val(scope.number); 
        console.log(attrs)
    }
};
});
4

2 に答える 2

2

あなたの質問を完全な双方向バインディングの参考として使用しました。angular 1.2.1 の動作バージョンについては、http://jsfiddle.net/sander_van_dam/m5YJu/ を参照してください

App.directive('knob', function() {
    return {
        require: 'ngModel',
        scope: { model: '=ngModel' },
        controller: function($scope, $element, $timeout) {
                var el = $($element);
                $scope.$watch('model', function(v) {
                    var el = $($element);
                    el.val(v).trigger('change');
                });
        },

        link: function($scope, $element, $attrs,$ngModel) {
                    var el = $($element);
                    el.val($scope.value).knob(
                        {
                            'change' : function (v) {
                                $scope.$apply(function () {
                                  $ngModel.$setViewValue(v);
                            });
                        }
                        }
                    );
        }
    }

});
于 2014-02-09T15:11:21.583 に答える