基于Angular的【微信精选】应用

作者: 无穷369 | 来源:发表于2017-03-07 09:06 被阅读547次
angular.png

最近学习了一下AngularJS这个框架,并且运用聚合的API写了一个微信精选应用。现来和大家分享一下我的学习心得。

效果图如下

1234.png

Angular.js 是一个MVC模式的JavaScript框架。它使用了不同的方法,去尝试补足HTML本身在构建应用方面的缺陷。它可以让浏览器识别新的语法,例如:

使用双大括号{{}}语法进行数据绑定;
使用DOM控制结构来实现迭代或者隐藏DOM片段;
支持表单和表单的验证;
能将逻辑代码关联到相关的DOM元素上;
能将HTML分组成可重用的组件。

那么我们是如何来集成这个框架的呢?很简单,首先我们去官网下载Angular

Angular下载:http://www.apjs.net/

然后我们来构建Angular项目的目录结构,如下图

angu.png

在html里采用类似这样的结构

<!doctype html>
<html ng-app>
    <head>
        <script src="http://code.angularjs.org/angular-1.0.1.min.js"></script>
    </head>
    <body ng-controller="GreetCtrl">
        Hello {{text}}!
    </body>
</html>

{{text}}内容通过控制器获取数据,控制器代码如下

function GreetCtrl($scope) {
  $scope.text = 'World';
}

这是一个最简单的Angular实例,更多内容请看Angular开发文档

Angular开发文档:http://www.apjs.net/

下面是我项目的源码

index页面

<!doctype html>
<html ng-app>
    <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width,minimum-scale=1,maximum-scale=1">
    <title>微信精选</title>
        <script src="./node_modules/angular/angular-1.3.0.js"></script>
        <script src="./script/ViewController.js"></script>
        <script src="./script/jquery-1.8.3.min.js"></script>
        <link rel="stylesheet" type="text/css" href="./style/mui.min.css">
        <link rel="stylesheet" type="text/css" href="./style/H-ui.reset.css">
        <style type="text/css">
            header{
                background: #555;
                width: 100%;
                height: 50px;
                text-align: center;
                color: #fff;
                font-size: 20px;
                line-height: 50px;
                position: fixed;
            }
        </style>
    </head>
    <body>
        <!--app头部导航-->
        <div class="mui-navbar-inner mui-bar mui-bar-nav" style="background: #555">
                <h1 class="mui-center mui-title" style="color: #fff;">微信精选</h1>
        </div>
        <div ng-controller="GreetCtrl">
        <ul class="mui-table-view" style="margin-top: 40px;">
            <li class="mui-table-view-cell mui-media" ng-repeat="item in items" ng-click="click(item.url)">
                <a href="javascript:;">
                    ![]({{item.firstImg}})
                    <div class="mui-media-body">
                        <p class='mui-ellipsis'>{{item.title}}</p>
                        来源:{{item.source}}
                    </div>
                </a>
            </li>
        </ul>
        </div>
    </body>
</html>

控制器


var prefix = 'html5_weixin_'
//读取
var StorageGetter = function(key){
    return localStorage.getItem(prefix + key);
}
//存储
var StorageSetter = function(key,val){
    return localStorage.setItem(prefix + key,val);
}

function GreetCtrl($scope) {

$.ajax({
      type: 'POST',
      url: 'http://v.juhe.cn/weixin/query',
      data:{
            pno:'1',
            ps:'20',
            dtype:'json',
            key:'a13e2da7eb01313760fb4c85e5f31eec'
           },
      dataType: 'json',
      success: function(data){
        console.log(data.result);

        $scope.$apply(function(){
            $scope.items = data.result.list;
            $scope.click = function (code) {
            console.log(code);
            StorageSetter('url',code);
            window.location.href='./views/content.html';
        };
        });

      }
    });

}

function Ctrl($scope,$sce) {

    $scope.url = $sce.trustAsResourceUrl(StorageGetter('url'));

}

文章详情页

<!doctype html>
<html ng-app>
    <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width,minimum-scale=1,maximum-scale=1">
    <title>微信精选</title>
        <script src="../node_modules/angular/angular-1.3.0.js"></script>
        <script src="../script/ViewController.js"></script>
        <script src="../script/jquery-1.8.3.min.js"></script>
        <link rel="stylesheet" type="text/css" href="../style/mui.min.css">
        <link rel="stylesheet" type="text/css" href="../style/H-ui.reset.css">
        <style type="text/css">
            header{
                background: #555;
                width: 100%;
                height: 50px;
                text-align: center;
                color: #fff;
                font-size: 20px;
                line-height: 50px;
                position: fixed;
            }
        </style>
    </head>
    <body>
        <!--app头部导航-->
        <div class="mui-navbar-inner mui-bar mui-bar-nav" style="background: #555">
               <button type="button" class="mui-left mui-action-back mui-btn  mui-btn-link mui-btn-nav mui-pull-left">
                    <span id="btn" class="mui-icon mui-icon-left-nav"></span>
                </button>
            <h1 class="mui-center mui-title" style="color: #fff;">微信精选</h1>
        </div>
        <div ng-controller="Ctrl">
        <iframe id="iframe_id" width="100%" height="667px" style="margin-top: 40px;" ng-src="{{url}}"></iframe></div>
    </body>
    <script type="text/javascript">
        $(function(){
            $('#btn').click(function(){
                window.location.href='../index.html';
            });
        })
    </script>
</html>

注意

在请求接口的时候会涉及到跨域请求,所以我们要在谷歌浏览器上安装Allow-Control-Allow-Origin *这个插件。并且添加这个网址http://v.juhe.cn/weixin/query

456.png chajian.png

由于墙的原因我们无法直接在谷歌应用商城上安装插件,所以我们要借助天行网络加速器来完成。到百度上搜索天行VPN,安装客户端,每天可以免费领取1个小时免费使用时长。

tianxin.png

相关文章

  • 基于Angular的【微信精选】应用

    最近学习了一下AngularJS这个框架,并且运用聚合的API写了一个微信精选应用。现来和大家分享一下我的学习心得...

  • Angular学习笔记-深入学习

    Angular 有什么特点 基于 Angular 我们可以构建适用于所有平台的应用。比如:Web 应用、移动 We...

  • 微信登录相关开发流程

    记录微信开发流程,快速搭建微信服务。 网站应用 网站应用微信登录 网站应用微信登录是基于OAuth2.0协议标准构...

  • 一切基于模块

    参考资料:慕课网:Angular 实战《Angular 权威指南》 一切基于模块 在 Angular 应用中,一切...

  • C#开发微信门户及应用(45)--微信扫码登录

    在前面随笔《C#开发微信门户及应用(41)--基于微信开放平台的扫码登录处理》介绍了基于微信开放平台接口实现的微信...

  • Angular

    1,什么是Angular 基于JavaScript开发的客户端应用框架 2,angular模式 mvc架构: m...

  • 第三方登录:微信登录接入指南

    网站应用微信登录是基于OAuth2.0协议标准构建的微信OAuth2.0授权登录系统。 申请应用及配置 在微信开发...

  • 干货分享|微信分销模式与传统微商模式区别

    微信应用的崛起加速了移动互联网的发展,促使更多人使用微信分销系统,转型到移动互联网。微信应用基于微信小程序的分销商...

  • 微信读书

    微信读书,阅读+社交,基于微信关系链的阅读应用。 首先来说一下阅读。区别于以网络文学为主的其他阅读应用,微信阅读的...

  • IdentityServer4 知多少

    1. 引言 现在的应用开发层出不穷,基于浏览器的网页应用,基于微信的公众号、小程序,基于IOS、Android的A...

网友评论

    本文标题:基于Angular的【微信精选】应用

    本文链接:https://www.haomeiwen.com/subject/cnkugttx.html