如何将我创建的包中的字符串添加到 Umbraco 的首页?
How do I add a string from a package I created to the frontpage in Umbraco?
我创建了一个 属性 编辑器,并且设置了一个文档来显示 属性,如下所示:
我仍然不知道如何将文本显示到首页。我设法显示另一个 属性,称为框,我添加到文档
这是我的控制器的样子:
angular.module("umbraco").controller("mytext",
function ($scope) {
// do code here
});
这是我的 mytext.html 的样子:
<div ng-controller="mytext" class="mytext">
<h2>Hellooooooo!</h2>
<!--<input type="text" ng-model="model.value" />
ng-model="model.value" />-->
<div class="display"><h2>Hellooooooo!</h2></div>
</div>
我的模板是这样的:
@inherits Umbraco.Web.Mvc.UmbracoTemplatePage<ContentModels.MyHelooo>
@using ContentModels = Umbraco.Web.PublishedContentModels;
@{
Layout = "Master.cshtml";
}
@CurrentPage.Name
@CurrentPage.Hejhej
@CurrentPage.box
<p>All your bases</p>
最后这就是我的 package.manifest 的样子:
{
"propertyEditors": [
{
"alias": "MyText",
"name": "My text",
"hideLabel": false,
"valueType": "JSON",
"editor": {
"view": "~/App_Plugins/MyText/mytext.html"
}
}
],
"javascript": [
"~/App_Plugins/MyText/mytext.controller.js"
],
"css":[
"~/App_Plugins/MyText/mytext.css"
]
}
编辑:
我使用 Joniff answer 制作了这样的控制器:
angular.module("umbraco").controller("mytext",
function ($scope) {
$scope.value = 'Helloooooooooooo!';
});
为了让它工作,我必须使用 CTRL+SHIFT+DELETE 清除浏览器的缓存。
我还必须确保我 运行 Visual Studio 处于调试模式,这是一些小事,但当你不知道哪里出了问题时会感到沮丧。
根据已发布的确切代码,您已经注释掉了实际将 mytext.html 中的 model.value 设置为一个值的代码。这确实需要设置一些东西,否则,你的新 属性 类型在前端没有输出值。
如果您想硬编码 属性 以始终显示 'Helloooooooooooo!' 那么
angular.module("umbraco").controller("mytext",
function ($scope) {
$scope.value = 'Helloooooooooooo!';
});
或
<div ng-controller="mytext" class="mytext" ng-init="model.value='Hellooooooo'">
<h2>Hellooooooo!</h2>
<div class="display"><h2>Hellooooooo!</h2></div>
</div>
不过,为什么不使用输入控件编辑 model.value,比如
<div ng-controller="mytext" class="mytext">
<input type="text" ng-model="model.value" />
</div>
最终,我不确定您要实现什么,因为您发布的代码与标签的作用相同,
A) 已经作为 属性 类型存在于 Umbraco 中并且
B) 就像你的版本一样没有输入或输出。
我创建了一个 属性 编辑器,并且设置了一个文档来显示 属性,如下所示:
我仍然不知道如何将文本显示到首页。我设法显示另一个 属性,称为框,我添加到文档
这是我的控制器的样子:
angular.module("umbraco").controller("mytext",
function ($scope) {
// do code here
});
这是我的 mytext.html 的样子:
<div ng-controller="mytext" class="mytext">
<h2>Hellooooooo!</h2>
<!--<input type="text" ng-model="model.value" />
ng-model="model.value" />-->
<div class="display"><h2>Hellooooooo!</h2></div>
</div>
我的模板是这样的:
@inherits Umbraco.Web.Mvc.UmbracoTemplatePage<ContentModels.MyHelooo>
@using ContentModels = Umbraco.Web.PublishedContentModels;
@{
Layout = "Master.cshtml";
}
@CurrentPage.Name
@CurrentPage.Hejhej
@CurrentPage.box
<p>All your bases</p>
最后这就是我的 package.manifest 的样子:
{
"propertyEditors": [
{
"alias": "MyText",
"name": "My text",
"hideLabel": false,
"valueType": "JSON",
"editor": {
"view": "~/App_Plugins/MyText/mytext.html"
}
}
],
"javascript": [
"~/App_Plugins/MyText/mytext.controller.js"
],
"css":[
"~/App_Plugins/MyText/mytext.css"
]
}
编辑: 我使用 Joniff answer 制作了这样的控制器:
angular.module("umbraco").controller("mytext",
function ($scope) {
$scope.value = 'Helloooooooooooo!';
});
为了让它工作,我必须使用 CTRL+SHIFT+DELETE 清除浏览器的缓存。 我还必须确保我 运行 Visual Studio 处于调试模式,这是一些小事,但当你不知道哪里出了问题时会感到沮丧。
根据已发布的确切代码,您已经注释掉了实际将 mytext.html 中的 model.value 设置为一个值的代码。这确实需要设置一些东西,否则,你的新 属性 类型在前端没有输出值。
如果您想硬编码 属性 以始终显示 'Helloooooooooooo!' 那么
angular.module("umbraco").controller("mytext",
function ($scope) {
$scope.value = 'Helloooooooooooo!';
});
或
<div ng-controller="mytext" class="mytext" ng-init="model.value='Hellooooooo'">
<h2>Hellooooooo!</h2>
<div class="display"><h2>Hellooooooo!</h2></div>
</div>
不过,为什么不使用输入控件编辑 model.value,比如
<div ng-controller="mytext" class="mytext">
<input type="text" ng-model="model.value" />
</div>
最终,我不确定您要实现什么,因为您发布的代码与标签的作用相同, A) 已经作为 属性 类型存在于 Umbraco 中并且 B) 就像你的版本一样没有输入或输出。