angularJs - cynthia娆墨旧染-响应式文章发布系统

(0)功能

  a.添加新文章

  b.修改已发布文章

  c.搜索已经发布的文章

  d.备注:demo链接等有空传了发,可以直接copy下面的源码,本地运行看看,还有很多不足,后续改进

 

(1)界面

  a.文章列表页

  b.文章详细页

  c.文章添加页

  d.文章修改页

(2)html源码

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>文章发布系统</title>

    <script src="../build/angular.min.js" charset="utf-8"></script>

    <meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1">
    <meta name="autor" content="cynthia娆墨旧染">
    <meta name="robots" content="cynthia娆墨旧染">
    <meta name="Generator" content="Atom">
    <meta name="renderer" content="webkit">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <meta http-equiv="Content-Language" content="zh-CN">
    <meta http-equiv="windows-Target" content="_top">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">

    <link rel="stylesheet" href="css.css" media="screen" title="no title" charset="utf-8">
    <script src="../build/angular.min.js" charset="utf-8"></script>
    <script src="../build/angular-route.min.js" charset="utf-8"></script>
  </head>
  <body>
    <div class="cynthia-post" ng-app="NewsPub">
      <ul class="cynthia-nav">
        <li>
          <a href="#/list">文章列表</a>
        </li>
        <li>
          <a href="#/add">写文章</a>
        </li>
        <li style=‘float: right;margin-right: 2%;‘>
          <input type="text" name="name" value="" ng-model=‘search‘ placeholder="关键字搜索" class="cynthia-search" >
        </li>
      </ul>
      <div class="" ng-view></div>

      <!-- list -->
      <script type="text/ng-template" id="list.html">
          <div class="">
            <ul class="cynthia-list">
              <li ng-repeat="news in newsList | filter:search" >
                <img src="1.png"  />
                <div class="cynthia-list-item">
                  <a href="#/detail/{{news.id}}">{{news.id}}.{{news.title}}</a>
                  <p>
                    {{news.content}}
                  </p>
                  <time>时间:{{news.date}}</time>
                </div>
              </li>
            </ul>
          </div>

      </script>

      <!-- add -->
      <script type="text/ng-template" id="add.html">
        <div class="cynthia-add">
            <input type="text" name="name" value="" class="cynthia-add-title" ng-model="title" placeholder="输入文章标题">
            <textarea cols="30" rows="10" class="cynthia-add-content" ng-model="content" placeholder="输入文章内容"></textarea>
            <input type="button" name="name" value="提交" class="cynthia-add-submit" ng-click="add()">
        </div>
      </script>

      <!-- edit -->
      <script type="text/ng-template" id="edit.html">
        <div class="cynthia-add">
            <input type="text" name="name" value="" class="cynthia-add-title" ng-model="news.title">
            <textarea cols="30" rows="10" class="cynthia-add-content" ng-model="news.content"></textarea>
            <input type="button" name="name" value="提交" class="cynthia-add-submit" ng-click="update()">
        </div>
      </script>

      <!-- detail -->
      <script type="text/ng-template" id="detail.html">
        <div class="cynthia-detail">
          <h1>{{news.title}}</h1>
          <hr>
          <p>
            {{news.content}}
          </p>
          <time>时间: {{news.date}}</time>
          <br>
          <a href="#/edit/{{news.id}}" class="cynthia-edit-btn">重新编辑</a>
        </div>
      </script>

    </div>
  </body>

  <script type="text/javascript">
    var app = angular.module(‘NewsPub‘, [‘ngRoute‘]);
    function routeConfig($routeProvider){
      $routeProvider.
      when(‘/‘, {
          controller: ‘ListController‘,
          templateUrl: ‘list.html‘
      }).
      when(‘/detail/:id‘, {
          controller: ‘DetailController‘,
          templateUrl: ‘detail.html‘
      }).
      when(‘/edit/:id‘, {
          controller: ‘EditController‘,
          templateUrl: ‘edit.html‘
      }).
      when(‘/list‘, {
          controller: ‘ListController‘,
          templateUrl: ‘list.html‘
      }).
      when(‘/add‘, {
          controller: ‘AddController‘,
          templateUrl: ‘add.html‘
      }).
          otherwise({
              redirectTo: ‘/‘
          });
      };

    app.config(routeConfig);

    var newsList = [
      {
        id : 1,
        title : ‘娆声酒染‘,
        content : ‘被理科的纯黑纯白浸染久了,很多感觉变得迟钝,再也写不出那年窗下的马蹄江山和安静沧桑。那样的青石板街,那样的细碎夕阳,只叹一句片片往事伤。很多时候有很多感慨,但是只要面对着编辑器,面对着一行行代码,很快华丽的辞藻便消失得无影无踪。我不知道是否有女生和我一样,从一个怀揣公主梦的年纪,到自己亲手撕碎自己所有的幻想,变成像一个汉子一样战斗,不再依赖任何人,靠着自己的双手给人生上色一个缤纷童话。或许是成长,或许是成熟,但是心里,有什么地方空了下来。当情绪可以很好得控制,做事也可以想得很有逻辑,是非曲直很明白。不知道是幸,还是不幸。一夜风霜。越发发现最好释怀的地方却是KTV,可以安静听着某个朋友在某句歌词里投入的情绪,猜测他所经历的事情,也可以点首嗨歌把悲伤吼得撕心裂肺。对于背后的故事,我们只字不提。一群人的狂欢里尝着自己的孤单。上海很繁华,却也很落寞。可以很快聚集一批人陪你笑谈人生,却也孤单到想找个人说说心里话也不能。我们需要正能量地活着,所有的悲伤都不适合出现在朋友圈。忙碌可以让你情绪平复,然后不悲不喜。浮生一劫又一节,谁的曲折浸染了酒味揉进了绕梁的歌声里?‘,
        date : new Date()
      },
      {
        id : 2,
        title : ‘《活着》(作者:余华) 读后感‘,
        content : ‘作者下乡去收录民谣在田野里遇到一个老汉正在和牛老说好多名字,觉得好奇,就问老汉为什么一头牛有那么多名字。于是通过老汉的视角,第一人称回忆老汉的一生。老汉叫富贵,年轻的时候是一纨绔子弟,娶得是米行老板的千金家珍,他们家到他这一代是第三代。到他这一代在他手里把家产通过赌博全部输给了龙二。他爹,他娘,他儿子,他媳妇,他女儿,他女婿,他外孙...这些人在土地改革、文化大革命的背景下陆续因为各种原因死去。他爹被他气着摔死在蹲了一辈子的粪缸上。他娘在他被抓去当兵期间病死了。他儿子有庆是因为给县长(和富贵一起被抓壮丁,一起打过战)的女人输血被抽干死。他媳妇家珍得了软骨病加上受不了儿子的去世也就跟着去了。他女儿凤霞早年一场高烧后又聋又哑,后来也因为生孩子雪崩死的。他女婿二喜是个歪头,在工地上干活被掉下来的板块压死的。他的外孙苦根更是因为太久没吃饱在吃豆子的时候噎死的。最后只剩下富贵自己和一头老牛,老牛名字也叫富贵。而这一本不断死人的书,名字却叫活着。富贵的一生都在忍受亲人的去世。或许告诉我们:1.生命是一场不断失去的过程。2.生命是坚韧的,再多的悲痛都不能将其轻易打倒。3.死去的人未必不是幸福的,活着的人要带着所有关于死去的人的一生活下去。‘,
        date : new Date()
      },
      ];

    app.controller(‘ListController‘,function($scope){
      $scope.newsList = newsList;
    });

    app.controller(‘DetailController‘,function($scope, $routeParams){
      $scope.news = newsList[$routeParams.id-1];
    });

    app.controller(‘AddController‘,function($scope,$location){
      $scope.title = ‘‘;
      $scope.content = ‘‘;
      $scope.add = function(){
          newsList.push({
              id : newsList.length+1,
              title : $scope.title,
              content : $scope.content,
              date : new Date()
          });

          $location.path(‘list‘);
      }
    });

    app.controller(‘EditController‘,function($scope, $routeParams, $location){
      $scope.news = newsList[$routeParams.id-1];
      $scope.update = function(){
          newsList[$routeParams.id-1] = $scope.news;

          $location.path(‘list‘);
      }
    })
  </script>
</html>

(3)css源码

*{
  margin: 0;
  padding: 0;
  border: 0;
  outline: none;
}
body{
  background: #fff;
  font-family: "Microsoft Yahei";
  font-size: 14px;

}
a{
  color: #555555;
  text-decoration: none;
}
a:hover{
  cursor: pointer;
}
p{
  color: #555555;
  font-size: 12px;
  line-height: 200%;
}
time{
  font-size: 12px;
  color: #ccc;
}
li{
  list-style: none;
  float: left;
}

.cynthia-post{
  margin: 2%;
  width: 90%;
  padding: 3%;
  height: auto;
}

/*nav*/
.cynthia-nav{
  height: auto;
  overflow: auto;
  padding-bottom: 2%;
  border-bottom: 2px #ddd solid;
}
.cynthia-nav li{
  padding: 0 2%;
  height: auto;
  display: block;
}
.cynthia-search{
  width: 100%;
  height: 25px;
  border: 1px #ddd solid;
  padding:0 3%;
  background: url(search.png) right no-repeat;
  background-size: 20px 20px;
}

/*list*/
.cynthia-list{
  width: 100%;
}

.cynthia-list li{
  width: 95%;
  margin-left: 5%;
  border-left: 1px #ddd solid;
}

.cynthia-list li a{
  color: #4094c7;
  font-size: 16px;
}

.cynthia-list li p{
  margin-top: 10px;
}

.cynthia-list li img{
  width: 50px;
  height: 50px;
  border-radius: 50%;
  margin-left: -25px;
  margin-top:20px;
  border: 2px #ddd solid;
}

.cynthia-list-item{
  width: 91%;
  margin-left: 5%;
  padding:2%;
  background: #f5f5f5;
}

/*add*/
.cynthia-add{
  margin: 2%;
  width: 90%;
  padding: 3%;
  height: auto;
}
.cynthia-add-title{
  width: 94%;
  margin: 0 auto;
  border: 1px #ddd solid;
  min-height: 50px;
  padding: 2%;
  font-size: 18px;
  color: #333;
}
.cynthia-add-content{
  width: 94%;
  margin: 0 auto;
  border: 1px #ddd solid;
  min-height: 450px;
  padding: 2%;
  margin-top: 10px;
  font-size: 14px;
  color: #333;
}

.cynthia-add-submit{
  width: 30%;
  height: 40px;
  background: #4094c7;
  font-size: 16px;
  color: #fff;
  margin-top: 10px;
}

.cynthia-add-submit:hover{
  cursor: pointer;
}

/*detail*/
.cynthia-detail{
  margin: 2%;
  width: 90%;
  padding: 3%;
  height: auto;
}
.cynthia-detail h1{
  padding: 3% 0;
}
.cynthia-detail time{
  display: inline-block;
  padding: 3% 0;
}
.cynthia-edit-btn{
  display: inline-block;
  width: 25%;
  height: 40px;
  background: #4094c7;
  font-size: 16px;
  color: #fff;
  margin-top: 10px;
  margin-bottom: 10px;
  text-align: center;
  line-height: 40px;
}
时间: 2024-10-11 11:27:30

angularJs - cynthia娆墨旧染-响应式文章发布系统的相关文章

如何利用H5响应式建站系统做响应式网站

响应式网站成为了企业建站的首选目标,是什么因素导致的呢?我想更多是因为响应式网站的强大展示方式,多元素.多样化.多功能的形态,让网站"活了"起来,还有能够一个网站便能适应所有屏幕设备,不再需要为每一个不一样的设备制定一个特定版本的网站,省去了建站,优化.管理的麻烦.让你更好的统筹管理一个网站,便能在不同设备平台上得到相同的效果. 说起响应式网站,很多人会疑惑.那么好的类型网站,建设起来费用是不是要很高?建设时间是不是很长?错!错!错!其实如果在较早直接做一个响应式网站是要花费高额的开发

建设响应式网站有什么需要注意的?

现在使用手机移动端上网的用户越来越多,使得网站建设不单单是建设一个PC端网站就完事了,目前的互联网状况,移动网络占据着大部分互联网市场资源.但是对于建设移动端网站来讲,并非一件简单的事情.所以很多企业建站都选择制作响应式网站,但是往往是这样,以为做一个响应式网站就无后顾之忧,其实并不然,一个响应式网站如果做不好,后期的运营是相当乏力的. 以企业公司建站来讲,他们对响应式网站就只有一个概念,那就是建设费用高,建站时间长,所以让很多企业公司对响应式网站望而止步.如果小编没有接触过建站宝盒响应式建站系

怎么样制作一个好的响应式网站

现在的互联网形式,做一个响应式网站并不难,只需要借助H5响应式建站系统,个人都可以自助做响应式网站.做响应式网站的方法是有很多,但是把怎么样做好一个响应式网站做才是问题.大家都知道,做响应式网站的目的,就是因为响应式设计拥有丰富H5元素能够让你的网站展现的更加华丽炫酷,但是一个好的响应式网站并不是单单靠外表来衡量的,更多的是网站的整体结合来评定一个响应式网站是否好. 众所周知,一个网站如果IP量高,那可以证明这个网站是一个挺不错的网站.但是并能代表这个网站是一个优质的网站,网站的访客量可以通过很

做一个响应式网站需要多长时间

以传统的响应式建站模式来讲,做一个响应式网站需要的时间是很长的.抛开页面设计和模块的结合,光是网站的结构和网站布局就需要花费很长时间.还没计算建站前的准备工作,网站的策划等等.所以一般让企业对响应式网站望而止步的因素不单单是建站的费用,还有就是建站的时间过长,让网站的上线收到延迟,没有办法能够抢在黄金时间上线.那做一个响应式网站要多久呢?一般以企业展示型网站来统计,找建站公司来搭建大概需要3-6个月时间,如果是自己找开发团队时间大概要2-3个月时间.所以企业对于响应式网站既是爱,又是狠. 有什么

怎么样做一个易于推广的响应式网站

做一个响应式网站的目的是什么?为什么现在那么多站长.企业建站.个人建站选择建设响应式网站?对于为什么要做响应式网站,可以简单的说一方面是为了实现更精致的网站展现方式,另一方面就是为了更好的宣传网站.推广网站.大家都知道,响应式网站相比一般的传统网站要更易于推广,但并不是说做一个响应式网站就能够马上实现推广优化效果,要想做一个易于推广的H5响应式网站,需要在响应式网站建设过程中一步步搭建好. 一个响应式网站建设并不难,只需要使用建站宝盒响应式建站系统便能制作出一个H5响应式网站,相比传统的响应式建

企业做响应式网站的目的是什么

企业为什么要做网站?企业为什么要进入互联网?这两个疑问句我们可以把它转变成一句肯定句:"企业要做网站":"企业要进入互联网".从所周知,互联网的飞速发展影响到了众多行业和企业,他们纷纷挤破头都想进入"互联网+"模式,在这个资源丰富的市场中,分的一杯羹.但是想要在互联网当中赚取利益,首先你要有一个网站,就如同普通市场上一个得体的门面一样,在互联网市场中,你也需要一个精美的门面.网站就让你可以在互联网上更好的展现自己,宣传自己.对于刚进入互联网的企业

一个优秀的响应式网站能够给你带来什么?

网站作为你在互联网上的"门面",这个脸一个要争!那该怎么样才能把自己在互联网的"脸面"整理的漂漂亮亮呢?打造一个优质的网站,不但让你"长脸",还能让用户认得你,爱上你.提起优质的网站,说起来容易,做起来并没有那么简单!什么样的网站才能让你在互联网上长脸呢?我想只有建设响应式网站才能让你在互联网上变得与众不同! 众所周知,响应式设计是目前的主流建站设计技术.响应式设计的出现更好的解决了不同屏幕分辨率大小上,网站的展示适应问题.利用H5响应式设计制作

如何评定一个响应式网站的好坏

一个响应式网站的好坏,是否受人欢迎?这些都要取决于网站的整体情况,从网站建设到网站运营,每一个步骤和环境都需要很好的统筹规划.很多人评定一个响应式网站的好坏,都只是单单的从表面的迹象来看,并没有结合整体来评定.往往光看一个响应式网站的展现方式多么炫酷,功能多么强大,却没有看网站的内容.网站的结构.页面的衔接等等的方面,就评定说这是一个好网站. 好的响应式网站该具备什么样的标准?一个好的响应式网站最基本的要求:1.访问速度快2.网站稳定3.页面整洁4.结构清晰5.没有被搜索引擎处罚过 对于怎么样评

最全的响应式设计资源库

阅读本文需 8 分钟 响应式设计起源:Ethan Marcotte在2010年写了一篇响应式的文章,宣扬这种新式的网页设计思想,经过3年的发展,响应式设计得到了众多设计师的认可. 本文的目的在于为大家集中推荐一些最有价值的响应式设计资源.包含了CSS框架.在线工具.准备阶段的工具等等. 推荐阅读:<不要落伍!来和小伙伴一起学习响应式网页设计><来试试响应式设计!25例优秀的响应式网页设计赏析><年终特典!当下最热门的网页设计趋势总结> CSS 响应式框架 这一部分主要介