Hỏi về cách gọi function trong angularjs



    • Mình có cái function tạo slug trong phần tin tức như thế này:
      0_1498691471320_3.png
    • Sử dụng lại ở category mình lại chèn vào:
      0_1498691591041_4.png
      =>>>>>>>> Như thế này cùi bắp lắm :(
    • Giờ mình muốn tạo 1 file riêng để chỉ việc gọi lại thôi:
    • Dùng require thì nó ko hiểu, vì require là của nodejs
    • Dùng onblur() của javacript lấy giá trị của title và gán cho slug thì thằng $scope.slug nó lại ko lấy được giá trị
      0_1498691953451_5.png
    • Dùng keypress() thì $scope.slug nó lại ko lấy được ký tự cuối của title
    • Giờ có giải pháp nào hay ko ạ, mọi người chỉ mình với, cảm ơn nhiều <3

  • Global Moderator

    @Lê-Văn-Hoàng said in Hỏi về cách gọi function trong angularjs:

    Dùng keypress() thì $scope.slug nó lại ko lấy được ký tự cuối của title

    Bạn có thể tạo ra service trong Angular để sử lại lại nhiều lần trong các controller.

    Như hiện tại, bạn đang gọi luôn hàm global, như vậy thì cũng có thể gọi lại ở mọi nơi khác mà chỉ cần định nghĩa 1 lần. Các này có thể gây xung đột, nếu bạn có nhiều hàm trùng tên hoặc trùng với 1 thư viện khác. Cách tốt nhất là tạo ra 1 angular service.

    Bạn nên đưa code lên thay vì chụp ảnh. Như vậy mình có thể đưa mã giả cho bạn, chứ ảnh thì mình không thể gõ lại được :)))



  • Bạn tạo một factory:
    app.factory('changeToSlug', function() {
    var slug;
    function set(data) {
    slug= data;
    }
    function get() {
    slug = $title.toLowerCase();
    ......
    ........//đoạn trong function ChangeToSlug của bạn
    return slug;
    }

    return {
        set: set,
        get: get
    }
    

    });

    trong controller gọi:
    .controller('myController'['$scope', 'ChangeToSlug', function($scope, ChangeToSlug){
    ChangeToSlug.set([email protected]');
    ChangToSlug.get();
    }])

    code trên có thể không đúng nhưng hướng giải quyết là vậy bạn tham khảo xem và search thêm google nhé.


Log in to reply