Прежде всего, я искал примеры, и ни одно из них не предлагает решение, которое я ищу.Директива AngularJS как способ ввода-вывода
У меня есть директива AngularJS, и она отлично работает, но на самом деле я действительно хочу ее с помощью Typcript.
Мой вопрос не связан с тем, как перевести код javascript на машинопись, но я действительно хочу понять привязку данных к контроллеру, потому что при переводе на машинописный вид представление перестало работать.
Вот мой код:
Директива
namespace Directives {
"use strict";
export interface ISidebarController {
toolbarButtons: any[];
toolbarBck: string;
toolbarBtnAction: Function;
}
class SidebarController implements ISidebarController {
static $inject = ["$location"];
constructor(private $location: ng.ILocationService) {
}
public toolbarBck = "sidebar-disabled";
public toolbarButtons = [
{
enabledImgIcon: "../resources/img/sidebar/enabled/list_icon.png",
disabledImgIcon: "../resources/img/sidebar/disabled/list_icon.png",
enabledBck: "sidebar-enabled",
disabledBck: "sidebar-disabled",
isEnabled: true,
isPressed: false
}, {
enabledImgIcon: "../resources/img/sidebar/enabled/create.png",
disabledImgIcon: "../resources/img/sidebar/disabled/create.png",
enabledBck: "sidebar-enabled",
disabledBck: "sidebar-disabled",
isEnabled: true,
isPressed: false
}
];
public toolbarBtnAction = function(btnObj, index) {
btnObj.isPressed = !btnObj.isPressed;
};
}
function sidebar(): ng.IDirective {
return {
restrict: "E",
templateUrl: "widgets/sidebar.html",
replace: true,
scope: {},
controller: SidebarController,
controllerAs: "vm",
bindToController: true
};
}
angular.module("app.confVersion").directive("sidebar", sidebar);
}
Посмотреть
<div class="row" ng-repeat="toolBtn in toolbarButtons" ng-click="toolbarBtnAction(toolBtn, $index)">
<div class="{{toolBtn.isPressed ? toolBtn.enabledBck : toolBtn.disabledBck}}">
<img ng-src="{{toolBtn.isPressed ? toolBtn.enabledImgIcon : toolBtn.disabledImgIcon}}">
</div>
</div>
Что именно не работает? вы получаете какую-либо ошибку? Разве вы не забыли называть 'vm.toolbarButtons', а не только' toolbarButtons'? – iberbeu