2016-03-27 7 views
0

Web api hizmetimden bazı temel bilgileri listelemek için Angular Object Table (https://github.com/ekokotov/object-table) kullanıyorum. Harika çalışıyor.Fonksiyonun çalışması direktifin içinde çalışmıyor mu?

Birkaç çıkışımda bir Sil düğmesi ekledim, böylece kullanıcı girişi silebilir. Denetleyicimde, çalışmakta olan bir silme işlevim var. Test ettim. İşe yaramıyor gibi görünmüyor, direktifin içinde düğmeye sahip.

Benim kod şöyle görünür:

<table object-table 
            from-url="http://myapi.com" 
            data="myVar" 
            display="100" 
            headers="Header 1, Header 2" 
            fields="Field1, field2" 
            sorting="true"> 
           <thead> 
           <tr> 
            <th>Header 1</th> 
            <th>Header 2</th> 
        <td>Actions</td> 
           </tr> 
           </thead> 
           <tbody> 
           <tr> 
            <td>{{::item.field2}}</td> 
            <td>{{::item.field2}}</td> 
            <td><button ng-click="ctrl.delete(item.id)">Delete</button></td> 
           </tr> 
           </tbody> 
          </table> 

silme fonksiyonu, çağrılan olmadı. Ancak, ikinciyi aynı düğmeye <table object-table>'un dışına yerleştirin;

<button ng-click="ctrl.delete('hardcodedId')">Delete</button> 
<table object-table>...</table> 

Sonra çalışır. Yani yönerge içinde bir şey benim ctrl = vm, ui yönlendirici kullanır, ben düşünür.

Benim denetleyicisi şuna benzer:

myApp.controller('myController', function myController($scope, $http, $window) { 
     var vm = this; 

     vm.delete = function (id) { 
     } 

     return vm; 
    }); 
+0

Yönergeler için ne tür bir kapsam kullanıyorsunuz? İzole mi, mi mi yoksa yok mu? Direktif kodunuzu görmeniz yararlı olacaktır, çünkü sorun yaşadığınız yer burasıdır. – georgeawg

+0

Yönerge, atıfta bulunulan, Açısal Nesne Tablosu (https://github.com/ekokotov/object-table) Benim bir direktifim değil, bu problem. Confussion için özür dilerim. – brother

cevap

0

Angular Object Table source code baktığımızda, kapsamını yalıtmak kullanır. Direktifin içindeki işlevlerin dışarıdaki işlevlere erişememesinin nedeni budur.

Tablo verileri, yönerge kapsamında ctrl.data olarak kullanılabilir; bunlar object-table içindeki yönergeler veya denetleyiciler tarafından düzenlenebilir.

+0

Başka bir deyişle, yukarıdaki örneğimde olduğu gibi işlevimi çağıramıyor muyum? – brother

+0

Bu doğru. 'Ng-repeat' ve 'ng-if 'gibi yönergelerin içerdiği kapsam ve işlevler, üst kapsamlardaki işlevlere erişebilir. Ancak, 'object-table' isolate kapsamını kullanır. Benim tavsiyem bir hizmette ortak işlevler koydu. – georgeawg

+0

Bir fonksiyonun ortak noktası değil - bir girişi silmek için bir işlev :-). Bir hizmet ve ona nasıl çağrı yapabildi? – brother