修复announcement js中作用域的问题

This commit is contained in:
sxw
2015-08-08 12:22:47 +08:00
parent fcd5caae02
commit 9da0716848
2 changed files with 100 additions and 99 deletions

View File

@@ -1,29 +1,23 @@
require(["jquery", "avalon", "csrf", "bs_alert", "editor", "validation"], function ($, avalon, csrfHeader, bs_alert, editor) {
announcementEditor = editor("#editor"); //创建新建公告的内容编辑器
editAnnouncementEditor = null;
editAnnouncementEditor = editor("#editAnnouncementEditor");
avalon.vmodels.announcement = null;
if (!avalon.vmodels.announcement) // 防止模式重新定义
{
// avalon:定义模式 announcement
vm = avalon.define({
avalon.ready(function () {
var vm = avalon.define({
$id: "announcement",
//通用变量
announcement: [], // 公告列表数据项
previous_page: 0, // 之前的页数
next_page: 0, // 之后的页数
page: 1, // 当前页数
isEditing: 0, // 正在编辑的公告的ID 为零说明未在编辑
page_count: 1,
visableOnly : false,
showOrHide : "仅显示可见",
announcementVisible : true,
changeHiddenState : function () {
if (vm.visableOnly == false)
vm.showOrHide = "显示全部";
else
vm.showOrHide = "仅显示可见";
vm.visableOnly =! vm.visableOnly;
getPageData(vm.page);
},
page_count: 1, // 总页数
visableOnly: false, //仅显示可见公告
// 编辑
announcementVisible: 0,
getState: function (el) { //获取公告当前状态,显示
if (el.visible)
return "可见";
@@ -33,14 +27,14 @@ require(["jquery", "avalon", "csrf", "bs_alert", "editor", "validation"], functi
getNext: function (el) {
if (!vm.next_page)
return;
getPageData(++(vm.page));
getPageData(vm.page + 1);
},
getPrevious: function (el) {
if (!vm.previous_page)
return;
getPageData(--(vm.page));
getPageData(vm.page - 1);
},
getBtnClass: function (btn) {
getBtnClass: function (btn) { //上一页/下一页按钮启用禁用逻辑
if (btn) {
return vm.next_page ? "btn btn-primary" : "btn btn-primary disabled";
}
@@ -51,8 +45,6 @@ require(["jquery", "avalon", "csrf", "bs_alert", "editor", "validation"], functi
},
enEdit: function (el) { //点击编辑按钮的事件,显示/隐藏编辑区
$("#newTitle").val(el.title);
if (!editAnnouncementEditor) //初始化编辑器
editAnnouncementEditor = editor("#editAnnouncementEditor");
editAnnouncementEditor.setValue(el.content);
vm.announcementVisible = el.visible;
if (vm.isEditing == el.id)
@@ -70,14 +62,20 @@ require(["jquery", "avalon", "csrf", "bs_alert", "editor", "validation"], functi
if (content != "") {
$.ajax({ //发送修改公告请求
beforeSend: csrfHeader,
url: "/api/announcements/",
url: "/api/admin/announcement/",
dataType: "json",
method: "put",
data: {id: vm.isEditing, title: title, content: content, visible: vm.announcementVisible},
data: {
id: vm.isEditing,
title: title,
content: content,
visible: vm.announcementVisible
},
success: function (data) {
if (!data.code) {
bs_alert("修改成功");
vm.isEditing = 0;
getPageData(1);
}
else {
bs_alert(data.data);
@@ -92,12 +90,14 @@ require(["jquery", "avalon", "csrf", "bs_alert", "editor", "validation"], functi
bs_alert("公告标题不能为空");
}
});
}
vm.$watch("visableOnly", function () {
getPageData(1);
});
avalon.scan();
getPageData(1); //公告列表初始化
vm.page = 1;
vm.isEditing = 0;
//Ajax get数据
function getPageData(page) {
var visible = '';
@@ -114,6 +114,7 @@ require(["jquery", "avalon", "csrf", "bs_alert", "editor", "validation"], functi
vm.page_count = data.data.total_page;
vm.previous_page = data.data.previous_page;
vm.next_page = data.data.next_page;
vm.page = page;
}
else {
bs_alert(data.data);
@@ -163,5 +164,7 @@ require(["jquery", "avalon", "csrf", "bs_alert", "editor", "validation"], functi
}
})
});
});
});

View File

@@ -25,8 +25,7 @@
</tr>
</table>
<div class="form-group">
<button class="btn btn-info" ms-click="changeHiddenState()">{{showOrHide}}</button>
<label>仅显示可见 <input ms-duplex-checked="visableOnly" type="checkbox"/></label>
</div>
<div class="text-right">
页数:{{page}}/{{page_count}}&nbsp;&nbsp;
@@ -36,7 +35,6 @@
<div ms-visible="isEditing">
<h3>编辑公告</h3>
<div class="form-group"><label for="title">标题</label>
<input name="title" type="text" class="form-control" id="newTitle" placeholder="公告标题" value=""></div>
<div class="form-group">
@@ -44,7 +42,7 @@
<textarea id="editAnnouncementEditor"></textarea>
</div>
<div class="form-group">
<label>显示 <input ms-duplex-checked="announcementVisible" type="checkbox"/></label>
<label>可见 <input ms-duplex-checked="announcementVisible" type="checkbox"/></label>
</div>
<div class="form-group">
<button ms-click="submitChange()" class="btn btn-primary">提交</button>