Umbraco 7 редактор пользовательских разделов, переместить дефтинацию контроллера из вида в отдельный файл
Я создал свой новый пользовательский раздел для серверной части Umbraco 7. Теперь я создал изменить.назначение редактора свойств html-файла с кодом:
<script type="text/javascript">
function CustomSectionEditController($scope, $log, $routeParams) {
$scope.content = { tabs: [{ id: 1, label: "Tab 1" }, { id: 2, label: "Tab 2" }] };
$scope.EditMode = function () {
$log.warn($routeParams);
return $routeParams.create == 'true';
};
}
</script>
<div ng-controller="CustomSectionEditController">
<umb-panel>
<umb-header tabs="content.tabs">
<div class="umb-headline-editor-wrapper span12 ng-scope">
<h1 class="ng-binding">My custom section {{id}}</h1>
</div>
</umb-header>
<umb-tab-view>
<umb-tab id="tab1" rel="svensson">
<div class="umb-pane">
This is tab content for tab 1<br />
<p ng-show="EditMode()">
<span class="label label-warning">In create mode, this label is only showed when the controller sees the create-querystring item.</span>
</p>
</div>
</umb-tab>
<umb-tab id="tab2" rel="kalle">
<div class="umb-pane">
This is tab content for tab 2
</div>
</umb-tab>
</umb-tab-view>
</umb-panel>
</div>
И это хорошо работает, но я хочу переместить бизнес-логику из представления в отдельный файл. Я попытался переместить код JS в отдельный файл и сделать ссылку на него следующим образом:
<script type="text/javascript" src="Controllers/StoreEditController.js"></script>
И Angular не хочет вводить мой контроллер в приложение. Как я могу переместить контроллер в отдельный файл и сделать ссылку на это в моем представлении? Это возможно?
Извините мой английский, пожалуйста. С Уважением, Антон2 ответа:
Я только что сделал то же самое не так давно в Умбрако 7. Как выглядит ваш файл JS? Я предполагаю, что вы не добавляете свой контроллер в приложение "umbraco", как это в отдельном файле js.
angular.module("umbraco").controller("CustomSectionEditController", function ($scope, $log, $routeParams) { $scope.content = { tabs: [{ id: 1, label: "Tab 1" }, { id: 2, label: "Tab 2" }] }; $scope.EditMode = function () { $log.warn($routeParams); return $routeParams.create == 'true'; }; } });
Кроме того, не забудьте включить этот новый файл js в свой пакет.декларация.
Я надеюсь, что это то, что вы ищете!
Убедитесь, что вы используете безопасный синтаксис minification для внедрения зависимостей.
angular.module("umbraco") .controller("ExampleController", ['$scope', '$log', function($scope, $log) { //do some stuff }]);
Также добавьте пакет.файл манифеста непосредственно в разделе App_Plugins / YourPlugin/ со следующим содержимым:
{ //array of files we want to inject into the application on app_start javascript: [ '~/App_Plugins/YourPlugin/path/to/jsfile.js' ] }
Вот лучший пример этого, который я нашел: