我正在尝试将winjs与angular和typescript结合使用。只要我不需要为Dom元素使用一些额外的JavaScript,Angular- some包装器就可以很好地工作。
在我的例子中,我想使用拆分视图项:菜单显示,但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-project-side的示例代码。
他们的例子还说我必须将这个添加到我的控制器中:
angular.module("yourAngularApp", ["winjs"]).controller("yourController", function ($scope) {
$scope.splitViewElement = document.getElementById("splitView");
});现在我的问题是,我使用的是typescript,并创建我的控制器与控制器的is语法。当我添加
$scope.splitViewElement = document.getElementById("splitView");对于我的控制器,splitView-Element为空。
我还试着用
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
}发布于 2016-02-12 06:29:11
可能会迟到,但这是我的工作方式。在我的控制器中,我使用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>https://stackoverflow.com/questions/33483452
复制相似问题