我为Umbraco 7后端创建了我的新自定义部分。 现在我用代码创建了edit.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并不想将我的控制器注入应用程序。如何将控制器移动到单独的文件并在我的视图中链接到此文件?有可能吗?
请原谅我的英语。 此致,安东
答案 0 :(得分:3)
我刚刚在Umbraco 7做了同样的事情。你的JS文件是什么样的?我的猜测是你不是在你单独的js文件中将你的控制器添加到这样的“umbraco”应用程序中。
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'; }; } });
另外,请务必在package.manifest中包含这个新的js文件。
我希望这就是你要找的东西!
答案 1 :(得分:0)
确保使用缩小安全语法进行依赖注入。
angular.module("umbraco")
.controller("ExampleController",
['$scope', '$log', function($scope, $log) {
//do some stuff
}]);
另外,在App_Plugins / YourPlugin /下直接添加package.manifest文件,其中包含以下内容:
{
//array of files we want to inject into the application on app_start
javascript: [
'~/App_Plugins/YourPlugin/path/to/jsfile.js'
]
}
以下是我找到的最好的例子: