22

私たちのアプリは、ブートストラップ (angular-ui ブートストラップ) を使用して jQuery から AngularJS に移植されています。

次の優れた投稿で取り上げられた便利な機能の 1 つは、URL フィールドにプレフィックスがない場合に「http://」プレフィックスを追加することでした: http://www.robsearles.com/2010/05/jquery-検証-url-追加-http/

AngularJS でディレクティブを使用して同じことを達成しようとしていますが、入力中に ng-model の値を変更するディレクティブを取得できません。

今のところ、すべての変更に「http://」プレフィックスを追加するためのフィドルを取得しようとすることで、簡単に始めました(ロジックを後で追加して、必要な場合にのみ追加できます)。http://jsfiddle.net/LDeXb/9/

app.directive('httpPrefix', function() {
    return {
        restrict: 'E',
        scope: {
            ngModel: '='
        },
        link: function(scope, element, attrs, controller) {
            element.bind('change', function() {
                scope.$apply(function() {
                   scope.ngModel = 'http://' + scope.ngModel;
                });
            });
        }
    };
});

誰でもこれをngModelに書き戻すのを手伝ってくれませんか。また、この新しいディレクティブを適用する必要があるフィールドには、既に分離スコープを持つディレクティブがあるため、分離スコープを持つ別のディレクティブを持つことはできないと想定しています-そうであれば、分離スコープなしでそれを達成できますか?

4

2 に答える 2

8

Matt Byrne によって提供された以前のコメントは、 httpsプレフィックスでは機能しません。**httpsプレフィックスでも機能する以前の回答に基づいて、更新されたバージョンをチェックアウトしてください! そこが欠けていた

/^(https?):\/\//i

http://jsfiddle.net/ZaeMS/13

于 2014-09-10T20:27:32.367 に答える