2015-11-02 5 views
0

Я пытаюсь использовать winjs с угловым и машинописным текстом. Обертка Angular-Winjs работает хорошо, так как мне не нужно использовать дополнительный JavaScript для Dom-Elements.winjs angular typescript с splitView

В моем случае я хочу использовать элемент с разделенным видом: Отображается меню, но JavaScript-функция не работает.

это мой код:

<win-split-view-pane-toggle split-view="splitViewElement"></win-split-view-pane-toggle> 
<win-split-view id="splitView"> 
    <win-split-view-pane> 
     SplitView Navigation Pane 
     <win-split-view-command label="'Home'" icon="'home'" on-invoked="goToHome()"></win-split-view-command> 
     <win-split-view-command label="'Settings'" icon="'settings'" on-invoked="goToSettings()"></win-split-view-command> 
    </win-split-view-pane> 
    <win-split-view-content>SplitView Content Area</win-split-view-content> 
</win-split-view> 

это пример кода из GitHub-проекта на стороне.

их пример также говорит, что я должен добавить это мой контроллер:

angular.module("yourAngularApp", ["winjs"]).controller("yourController", function ($scope) { 
    $scope.splitViewElement = document.getElementById("splitView"); 
}); 

теперь моя проблема заключается в том, что я использую машинопись и создать свой контроллер с controllerAs-синтаксисом. Когда я добавляю к контроллеру

$scope.splitViewElement = document.getElementById("splitView"); 

Я также попытался использовать

angular.element("splitView").context 

, который имеет элемент, но он не работает, тоже.

Это мой контроллер.

constructor($scope, $state, $http, $q) { 
    super($state, $http, $q, $scope, true); 

    $scope.splitViewElement = document.getElementById("splitView"); //this is null 
    $scope.splitViewElement = angular.element("splitView").context; //this is not null 

     } 
+0

Учитывая тот факт, библиотека не так широко распространена, я хотел бы спросить автора: https://github.com/winjs/angular-winjs/issues –

+0

@ Мартин: Да, это то, что я сделал сегодня. Я связался с ними через nuget ... надеюсь, они ответят;) –

ответ

0

Возможно, будет поздно, но вот как это работает для меня. В моем контроллере я запрос для элемента с angular.element

vm.splitViewElement = angular.element("#splitView")[0];

Если элемент доступен он должен быть первым в массиве. Теперь просто связать vm.splitViewElement с вашей точки зрения:

<win-split-view-pane-toggle class="win-splitviewpanetoggle" split-view="vm.splitViewElement"> 
</win-split-view-pane-toggle>