So definieren Sie eine Funktion innerhalb von Angular-js-Richtlinie

Ich erstellt eine Richtlinie für die Auswahl von Benutzern mithilfe der bootstrap - Dropdown-element. wie folgt.

Javascript

app.directive('usersDropdown', function(ConfigService,$http) {
    return {
        templateUrl: 'app/views/users_dropdown.html',
        link: function($scope, element, attrs) {
        });
    };
});

users_dropdown.html

<div class="btn-group pull-right" >
    <a class="btn dropdown-toggle" data-toggle="dropdown" href="">
        Select User
        <span class="caret"></span>
    </a>
    <ul class="dropdown-menu pull-right align-left" role="menu" aria-labelledby="dropdownMenu">
        <li ng-repeat = "userList in userLists"><a ng-click="getUserDetails('{{userList.SessionId}}')" style="cursor:pointer">{{userList.UserPartyName}}</a></li>
        <li ng-hide="userLists" style="cursor:pointer"><a>No Users</a></li>
    </ul>
</div>

Muss ich eine Funktion erstellen getUserDetails, die aufgerufen werden sollen, während Sie auf einen Benutzer aus der Liste. Meine Frage ist, wie Sie zur Definition dieser Funktion in der Richtlinie selbst? Ich schrieb es in den controller. Aber das problem ist ich bin mit mehreren Controllern. Es ist nicht eine gute Praxis zu schreiben, die dieselbe Funktion in allen Controllern. Wenn ich schrieb, die Funktion gemeinsam für alle controller, die innerhalb der Richtlinie, es wird gut sein. Wenn Sie eine gute Lösung haben, lassen Sie mich wissen, dass.


Änderung

Ich meine modifizierten Richtlinie js wie folgt

app.directive('usersDropdown', function(ConfigService,$http) {
    return {
        templateUrl: 'app/views/users_dropdown.html',
        link: function($scope, element, attrs) {
            $scope.getUserDetails = function(user_id){
                console.log(user_id);
            }
        }
    };
});

Dafür bin ich immer das Ergebnis in der Konsole als {{userList.SessionId}}. Nicht der Wert. Aber wenn ich Überprüft die Funktion übergeben erwarteten Wert.
So definieren Sie eine Funktion innerhalb von Angular-js-Richtlinie

Dann, warum der erwartete Wert ist nicht immer innerhalb der Funktion?


Gelöst

Ich löste das Problem, indem Sie meinen Richtlinien html-Template. Ich entfernte ' und {{ aus wie folgt.

ng-click="getUserDetails(userList.SessionId)"

InformationsquelleAutor Sajith | 2013-11-18

Schreibe einen Kommentar