精华内容
下载资源
问答
  • 在右侧我们给出了一个已经基本完成的程序,读入了一个字符串,调用了一个叫str_len的函数来计算这个字符串的长度,并输出。 聪明的你应该已经发现了,这个叫str_len的函数并没有完成,在不修改函数原型的情况下,请...

    在右侧我们给出了一个已经基本完成的程序,读入了一个字符串,调用了一个叫str_len的函数来计算这个字符串的长度,并输出。

    聪明的你应该已经发现了,这个叫str_len的函数并没有完成,在不修改函数原型的情况下,请完成str_len函数,实现我们上述的功能吧。

    样例输入 复制
    abcdefg
    样例输出 复制
    7

    import java.util.*;
    public class Main{
    	public static void main(String args[]){
    		Scanner input = new Scanner(System.in);
    		String str = input.nextLine();
    		System.out.println(str_len(str));
    	}
    	static int str_len(String str)
    	{	//请在这里完成代码
    		    int count=0;
                for (int i = 0; i < str.length(); i++) {
                    count++;
                }
                return count;
    	}
    
    }
    
    
    展开全文
  • Fielding的论文已经翻译完成

    千次阅读 2007-05-27 22:07:00
    Fielding关于REST的经典论文我们已经翻译完成,已经发给国内的一些专家做review。 我在两周后综合各位专家的review意见再做一次修订,然后就发给Fielding先生来发布。这篇论文绝对是所有做Web开发的人的必读,大家...
    Fielding关于REST的经典论文我们已经翻译完成,已经发给国内的一些专家做review。
    我在两周后综合各位专家的review意见再做一次修订,然后就发给Fielding先生来发布。

    这篇论文绝对是所有做Web开发的人的必读,大家期待吧。 
    展开全文
  • 如何知道ng-repeat循环的dom已经渲染完成@[ 梁冬 liangdong ]{jenis_9f24jvnh_iihbclab}@angular拥有自动化渲染DOM的特性,它能帮助我们专注于操作数据,而页面的渲染则由angular自身来完成。但是。。。 这就造成了...

    如何知道ng-repeat循环的dom已经渲染完成

    @[ 梁冬 liangdong ]{jenis_9f24jvnh_iihbclab}@

    angular拥有自动化渲染DOM的特性,它能帮助我们专注于操作数据,而页面的渲染则由angular自身来完成。

    但是。。。 这就造成了一个坑,在我们的 ng-repeat 循环完成后angular并不会告诉我们dom渲染完了。就造成了类似如下的场景下:
    我们需要通过知道循环完成了,来计算Dom高度或者宽度时,
    哎?
    angular这货是在什么时候渲染完的?

    一班 情况下有的同学会选择 $timeout 来让他延时计算,不得不说在大多数情况下这个方法是可以的。
    但是我们是 二班 同学。

    这时候我们就需要用到一个小技巧,一般情况下我会在公用的directive中加入一个指令

    define(['app'], function (app) {
        'use strict';
        app.registerDirective('repeatFinished', ['$timeout', function 	($timeout) {
            return {
                link: function (scope, elm, attrs) {
                    if (scope.$last === true) {
                        var emitMessage = attrs['repeatFinished'] || 'repeatFinished';
                     $timeout(function () {
                         scope.$emit(emitMessage);
                     });
                    }
                }
            };
        }]);
    });
    

    如何调用

    <ul>
        <li ng-repeat="item in list" repeat-finished="你自己想要定义的事件名" > 
            {{item.name}}
        </li>
    </ul>
    

    就是这么简单~~~

    该指令的作用是当我们的ng-repeat循环到最后一个时,向上冒泡一个事件名,而我们在需要的地方就可以通过监听这个事件名来知道dom是在何时渲染完成的。

    PS:如果三班的同学有更好的方法, 请无情的戳我的hi。

    展开全文
  • 首页功能前面,我们已经完成了影视信息组件的开发,接下来,我们要用该组件来完成首页界面功能的开发,如下图可以看到,首页顶部一个标题栏,下面是‘最新’、‘最热’两个选项卡。我们要完成的有标题栏、选项卡、...

    首页功能

    前面,我们已经完成了影视信息组件的开发,接下来,我们要用该组件来完成首页界面功能的开发,如下图

    首页

    可以看到,首页顶部一个标题栏,下面是‘最新’、‘最热’两个选项卡。我们要完成的有标题栏、选项卡、以及选项卡切换的内容。

    标题栏

    这里的标题栏,我们使用的是ToolbarAndroid,看名称我们就知道这个是android下特有的组件view,所以就立马想到,这个组件是ios、android不能通用的。因此,我们定义一个TitleBarComponent,方便以后重复使用和ios适配。这里,先提一下关于组件适配的一些问题。

    组件平台适配

    不同平台使用不同的组件,React Native 提供了以下四种解决方案

    • 最直接的方案就是把组件放置到不同的文件夹下:
    /common/components/   
    /android/components/   
    /ios/components/
    • 根据平台不同在组件的文件命名上加以区分,如下:
    BigButtonIOS.js
    BigButtonAndroid.js
    • 使用扩展名
    BigButton.ios.js
    BigButton.android.js

    以上三种方案,再引用的时候去掉平台标识,如下

    import BigButton from './components/BigButton';
    • Platform.select()
    import React, {Component,Platform} from 'react';
    
    var Component = Platform.select({
      ios: () => require('ComponentIOS'),
      android: () => require('ComponentAndroid'),
    });

    Platform.OS在iOS上会返回ios,而在Android设备或模拟器上则会返回android。

    创建标题栏

    根据上面的方案,我们这里使用的是使用扩展名的方案来适配平台的。在js/component下创建TitleBarComponent.android.js文件。

    标题栏总共有标题、副标题和左边的返回按钮icon,返回按钮只有在子页面(二级页面)才有,因此我们定义如下属性

    //初始化props
    static defaultProps = {
        title:'',//标题
        subtitle:'',//副标题
        subScene:true,//是否是子页面
    };

    然后,在render返回一个ToolbarAndroid

    render() {
        return(
            <ToolbarAndroid 
                title={this.props.title}
                navIcon={this.props.subScene?require('../../img/ic_actionbar_back.png'):null}
                titleColor='white'
                subtitle={this.props.subtitle}
                subtitleColor='#ebf0f6'
                actions={actions}
                onActionSelected={this._onActionClick.bind(this)}
                onIconClicked={this._onIconClick.bind(this)}
                style={styles.toolbar}
            />
            );
        }
    
        //返回按钮事件
        _onIconClick(){
    
        }

    这里几个属性说明下

    • title 就是标题
    • titleColor 设置标题颜色
    • subtitle 就是副标题
    • subtitleColor 设置副标题颜色
    • actions 了解android的都知道Toolbar右边还可以设置一些动作按钮(我们这里没有就不设置该属性)

    它的格式如下,可以设置多个

    const actions = [
        {title:'全部',show:'always',icon:require('../../img/icon_all.png'),showWithText:true},
    ]
    • onActionSelected 动作按钮被触发时的回调(我们这里没有就不设置该属性)
    • onIconClicked 标题栏左边的图标被点击后的回调(我们这里是返回按钮,返回图标可以到github上得到)
    • style 设置整个标题栏的样式,高度、背景等。

    TitleBarComponent的完整代码如下

    import React,{Component} from 'react';
    import {
        ToolbarAndroid,
        DeviceEventEmitter,
        StyleSheet,
        Text,
        TouchableOpacity,
    }from 'react-native';
    
    export default class TitleBarComponent extends Component {
        constructor(props) {
            super(props);
        }
    
        //初始化props
        static defaultProps = {
            title:'',//标题
            subtitle:'',//副标题
            subScene:true,//是否是子页面
        };
    
        render() {
            return(
                <ToolbarAndroid
                    title={this.props.title}
                    navIcon={this.props.subScene?require('../../img/ic_actionbar_back.png'):null}
                    titleColor='white'
                    subtitle={this.props.subtitle}
                    subtitleColor='#ebf0f6'
                    onIconClicked={this._onIconClick.bind(this)}
                    style={styles.toolbar}
                />
            );
        }
    
        //返回按钮事件
        _onIconClick(){
    
        }
    }
    
    const styles = StyleSheet.create({
        toolbar:{
            height:56,
            backgroundColor:'#ff5722',
        },
    });

    这样我们就完成了标题栏的设计。

    创建首页Scene

    添加标题

    接下来我们需要创建一个首页Scene,来展示首页功能。在js文件夹新建HomeScene.js文件,并为首页添加一个标题栏。

    import React,{Component} from 'react';
    import {
        View,
        Text,
        StyleSheet,
        TouchableOpacity
    } from 'react-native';
    
    import TitleBar from './component/TitleBarComponent'
    
    export default class HomeScene extends Component{
        constructor(props){
            super(props);
        }
    
        render(){
            return(
                <View style={{flex:1}}>
                    <TitleBar title="首页" subtitle="看韩剧,上稀饭" subScene={false}/>
                </View>
            );
        };
    }

    然后将index.android.js使用HomeScene

    import HomeScene from './js/HomeScene';
    
    class XiFan extends Component {
    
      render(){
        return(
            <HomeScene/>
        );
      }
    }
    
    AppRegistry.registerComponent('XiFan', () => XiFan);

    执行代码,就可以看到如下效果

    首页

    添加选项卡

    这样首页的标题有了,我们接下来要添加‘最新’、‘最热’两个选项卡

    在HomeScene内添加如下代码

    state增加一个tabIndex属性,标识当前选中的tab项

    constructor(props){
        super(props);
        this.state = {
            tabIndex:0,
        };
    }

    接着就是绘制Tab了

    //tab切换
    _onTabPress(index){
        this.setState({
            tabIndex:index,
        });
    }
    
    render(){
        return(
            <View style={{flex:1}}>
                <TitleBar title="首页" subtitle="看韩剧,上稀饭" subScene={false}/>
                <View style={{height:35,flexDirection:'row',justifyContent:'center',alignItems:'center',backgroundColor:'#ff5722'}}>
                    <View style={{flex:1}}>
                        <TouchableOpacity style={{flex:1,justifyContent:'center'}} activeOpacity={0.6} onPress={this._onTabPress.bind(this,0)}>
                            <Text style={this.state.tabIndex===0?styles.TabSelect:styles.TabUnSelect}>最新</Text>
                        </TouchableOpacity>
                        <View style={this.state.tabIndex===0?styles.TabUnderlineSelect:styles.TabUnderlineUnSelect}/>
                    </View>
                    <View style={{flex:1}}>
                        <TouchableOpacity style={{flex:1,justifyContent:'center'}} activeOpacity={0.6} onPress={this._onTabPress.bind(this,1)}>
                            <Text style={this.state.tabIndex===0?styles.TabUnSelect:styles.TabSelect}>最热</Text>
                        </TouchableOpacity>
                        <View style={this.state.tabIndex===0?styles.TabUnderlineUnSelect:styles.TabUnderlineSelect}/>
                    </View>
                </View>
            </View>
        );
    };

    该段代码的核心主要是根据tabIndex是否被选中项,动态修改View的样式

    var styles = StyleSheet.create({
        TabSelect:{
            flex:1,
            textAlign:'center',
            color:'white',
        },
        TabUnderlineSelect:{
            backgroundColor:'white',
            height:2,
        },
        TabUnSelect:{
            flex:1,
            textAlign:'center',
            color:'#d5d5d5',
        },
        TabUnderlineUnSelect:{
            height:0,
        },
    });

    现在的效果是这样的

    首页

    添加选项卡内容

    应用的功能就是像在堆积木一样,一点一点叠起来。现在给选项卡下方添加对应的内容。选项卡切换时,底下切换到对应的内容,我们这里使用的是ViewPagerAndroid。

    //ViewPager 页面发生切换时调用,修改tabIndex
    _onPageSelected(event){
        const position = event.nativeEvent.position;
        this.setState({
            tabIndex:position,
        });
    }
    _onPageScrollStateChanged(status){
        //idle 空闲,意味着当前没有交互。
    
        //dragging 拖动中,意味着当前页面正在被拖动。
    
        //settling 处理中,意味着当前页面发生过交互,且正在结束开头或收尾的动画。
    }
    
    render(){
        return(
            <View style={{flex:1}}>
                ...//省略其它代码
    
                <ViewPagerAndroid
                    style={{flex:1}}
                    initialPage={0}
                    onPageSelected={this._onPageSelected.bind(this)}
                    scrollEnabled={true}
                    pageMargin={0}
                    onPageScrollStateChanged={this._onPageScrollStateChanged}
                    keyboardDismissMode='on-drag'
                    ref={(viewPager)=>{this.viewPager = viewPager}}
                >
                    <View style={{flex:1}}>
                        <DramaComponent url='/hanju/new/'/>
                    </View>
                    <View style={{flex:1}}>
                        <DramaComponent url='/hanju/renqi/'/>
                    </View>
                </ViewPagerAndroid>
            </View>
        );
    };

    主要说几个属性

    • initialPage 初始显示哪个页面
    • onPageSelected页面选中时的回调函数
    • onPageScrollStateChanged 滚动状态发生变化时调用(目前没用到)
    • ref 定义该组件的实例对象,这里我们将ViewPagerAndroid实例对象声明为viewPager,然后我们就可以在这个页面内使用该对象,比如,前面的_onTabPress方法,在tab切换时需要下面的内容也切换到对应的内容,所以我们对_onTabPress方法添加如下代码:
    //tab切换
    _onTabPress(index){
        this.viewPager.setPage(index);
        this.setState({
            tabIndex:index,
        });
    }

    调用了viewPager对象setPage方法,进行页面切换。

    还有另一种定义ref方式,如下:

    <ViewPagerAndroid 
        ...//省略其它代码
        ref="viewPage">
        ...//省略其它代码
    </ViewPagerAndroid>

    然后使用对象时

    //tab切换
    _onTabPress(index){
        this.refs.viewPage.setPage(index);
        this.setState({
            tabIndex:index,
        });
    }

    再看下上面的代码,我们在ViewPagerAndroid内部塞了两个View,这两个View实际上就是要显示的内容了,它们就是我们之前自定义的DramaComponent,传入了不同的url,一个是最新的地址,一个是最热的人气,这样解析显示出来就是对应的数据了。

    关于ViewPagerAndroid更多信息,可以查看ViewPagerAndroid

    最后上一下本节的完成的成果效果图:

    效果图

    HomeScene.js的所有代码

    import React,{Component} from 'react';
    import {
        View,
        Text,
        StyleSheet,
        TouchableOpacity,
        ViewPagerAndroid
    } from 'react-native';
    
    import TitleBar from './component/TitleBarComponent'
    import DramaComponent from './component/DramaComponent';
    
    export default class HomeScene extends Component{
        constructor(props){
            super(props);
            this.state = {
                tabIndex:0,
            };
        }
    
        //tab切换
        _onTabPress(index){
            this.viewPager.setPage(index);
            this.setState({
                tabIndex:index,
            });
        }
        //ViewPager 页面发生切换时调用
        _onPageSelected(event){
            const position = event.nativeEvent.position;
            this.setState({
                tabIndex:position,
            });
        }
    
        _onPageScrollStateChanged(status){
            //idle 空闲,意味着当前没有交互。
    
            //dragging 拖动中,意味着当前页面正在被拖动。
    
            //settling 处理中,意味着当前页面发生过交互,且正在结束开头或收尾的动画。
        }
    
        render(){
            return(
                <View style={{flex:1}}>
                    <TitleBar title="首页" subtitle="看韩剧,上稀饭" subScene={false}/>
                    <View style={{height:35,flexDirection:'row',justifyContent:'center',alignItems:'center',backgroundColor:'#ff5722'}}>
                        <View style={{flex:1}}>
                            <TouchableOpacity style={{flex:1,justifyContent:'center'}} activeOpacity={0.6} onPress={this._onTabPress.bind(this,0)}>
                                <Text style={this.state.tabIndex===0?styles.TabSelect:styles.TabUnSelect}>最新</Text>
                            </TouchableOpacity>
                            <View style={this.state.tabIndex===0?styles.TabUnderlineSelect:styles.TabUnderlineUnSelect}/>
                        </View>
                        <View style={{flex:1}}>
                            <TouchableOpacity style={{flex:1,justifyContent:'center'}} activeOpacity={0.6} onPress={this._onTabPress.bind(this,1)}>
                                <Text style={this.state.tabIndex===0?styles.TabUnSelect:styles.TabSelect}>最热</Text>
                            </TouchableOpacity>
                            <View style={this.state.tabIndex===0?styles.TabUnderlineUnSelect:styles.TabUnderlineSelect}/>
                        </View>
                    </View>
    
                    <ViewPagerAndroid
                        style={{flex:1}}
                        initialPage={0}
                        onPageSelected={this._onPageSelected.bind(this)}
                        scrollEnabled={true}
                        pageMargin={0}
                        onPageScrollStateChanged={this._onPageScrollStateChanged}
                        keyboardDismissMode='on-drag'
                        ref={(viewPager)=>{this.viewPager = viewPager}}
                    >
                        <View style={{flex:1}}>
                            <DramaComponent url='/hanju/new/'/>
                        </View>
                        <View style={{flex:1}}>
                            <DramaComponent url='/hanju/renqi/'/>
                        </View>
                    </ViewPagerAndroid>
                </View>
            );
        };
    }
    var styles = StyleSheet.create({
        TabSelect:{
            flex:1,
            textAlign:'center',
            color:'white',
        },
        TabUnderlineSelect:{
            backgroundColor:'white',
            height:2,
        },
        TabUnSelect:{
            flex:1,
            textAlign:'center',
            color:'#d5d5d5',
        },
        TabUnderlineUnSelect:{
            height:0,
        },
    });

    总结

    这节,我们完成了首页功能的开发,主要涉及到了标题栏、选项卡切换的功能,细节上提到了组件的平台适配、ViewPager的使用等。下一节,我们将开发主界面的功能,包括底部TabBar的开发以及Navigator实现页面的跳转,而页面的跳转将是最主要的一个功能,下一节我们再详细来述说。

    展开全文
  • 我们写完一个py程序后可以直接在命令行里运行它,不过要在文件开头加上一段代码(windows可以不加) #!/bin/env python py看到这段代码后会去env里寻找解释器的位置。 然后在命令行里输入(后面是文件目录,这里我...
  • 在上一篇文章中,我们已经生成了我们Balloon component了。现在我们来让大家怎么来动态生成很多的气球。 4)更进一步完成我们的Balloon component 为了使得我们的Balloon更加像现实生活中的气球,我们来给Balloon...
  • Ext4.1.0 中文API文档已经全部翻译完成

    千次阅读 多人点赞 2014-01-01 19:38:01
    2014-01-01 Ext4.1中文文档已经全部翻译完成!  来祝贺我们吧!!!  来打赏我们吧!!!  全部文档共计31万字,耗时一年,共有23位成员参与,他们是:     曹成博  Wesley002  铁锚  传说【重庆】  ...
  • 内容都是百度AIstudio的内容,我只是在这里做个...在前面章节,我们已经完成了神经网络的设计,并根据用户对电影的喜好(评分高低)作为训练指标完成训练。神经网络有两个输入,用户数据和电影数据,通过神经网络提..
  • MVC框架之留言板完成(二)

    千次阅读 2016-10-03 09:34:23
    前端功能和布局我们已经完成了; 现在我们开始从后台来实现这些功能把; ①完成添加留言的功能;前端页面 {% extends "layout.html" %} {% block content %} //使用from表单提交,提交到index/save动作中; ...
  • IBM SOA 所有文档完成

    2006-06-29 16:43:00
    到现在为止,我们已经完成了所有的文档,包括所有的模型图:WBI,RSA模型图,所有开发文档:项目背景,可行性分析, 需求分析,架构设计,服务设计,用户手册,测试报告,系统说明说等,同时我们完成了部分程序,...
  • Quartz完成定时任务分布式单节点持久化】中我们已经完成了任务的持久化,当我们创建一个任务时任务会被quartz定时任务框架自动持久化到数据库,我们采用的是SpringBoot项目托管的dataSource来完成的数据源提供,...
  • 现在完成时形式have/has + done “完成”并不表示事情都做完了,“完成”其实分2方面含义:全部完成和部分完成。用法所以“现在完成时”包括 现在全部完成 和 现在部分完成。这个事做没做完都不重要,重要的...我们已经
  • Magento 网汇通(Udpay)支付网关(Payment Gateway)已经开发完成并测试好如有以上开发需求可以联系我们:Graham Information System Corporation, Limited.(GIS Corp, Ltd)No4,Ln395,Road YUYUANSHANGHAI,CHINAE-Mail...
  • 很快会出版,我们付出了很多心血,希望能给大家带来帮助。
  • x2008/07/01 19:22 上回说到给工具栏上添加IE风格的下拉菜单按钮,我们通过设置工具栏按钮的风格已经完成了下拉菜单按钮的添加,现在我们准备为下拉菜单按钮中响应下拉箭头部分的实现代码,下面来说下刚研究完的...
  • 在前半部分,我们已经完成了前两大步,并决定使用ResNet50预训练网络来训练模型。那么接下来,就让我们引入keras中已经封装好的ResNet50预训练网络参数。 ResNet50的引入 代码实现 base_model = ResNet50...
  • 上一话中我们实现了对一个小人表情...在上一话中我们已经完成了faceView的代码,但是HappinessViewController中完全是空的,我们要修复我们的Model,但是在那之前要介绍一些storyboard中很酷的功能。打开你工程中的sto
  • 霍去病18岁当上直属特种部队指挥官突袭敌国完成斩首行动,你正被同龄人抛弃!姜子牙80岁,还能率领千军改朝换代,李嘉诚90岁身家3000亿,你的同龄人正在抛弃你!看到上边这几句狠话什么心情?什么情绪?是不是觉得...
  • 但是这里有一个问题,就是有些场景下,我们希望保留程序运行出错或者运行结束的时候已经输出的信息。但是不幸的是,有的时候需要大量的运行同一个代码,不知不觉就把哪些出错或者运行结束的程序给替换掉了。 如果不...
  • 现在我们手上已经有了一个真实项目的 Git 仓库,并从这个仓库中取出了所有文件的工作拷贝。接下来,对这些文件作些修改,在完成了一个阶段的目标之后,提交本次更新到仓库。 请记住,工作目录下面的所有文件都...
  • 在.NET Framework中的System.IO命名空间包括FileSystemWatcher类。这个类提供监控作业的目录或文件的功能。如果你的应用程序需要知道新...当我们使用Create事件,判断某一个目录下创建新文件,并对该文件进行处理,可
  • 不知道大家有没有遇到...不过,小伙伴们,你们再也不用担心这个问题啦,在我们程序的通宵努力下,CSDN已经完成了博客外连接图片编辑的重大改版。你们辛苦编辑的文档再也不会出现图片丢失啦,无论是大图、小图、动...
  • Winsock 完成端口模型简介

    千次阅读 2005-12-19 15:49:00
    摘自《Networking Programming for Microsoft Windows》第八章...从本质上说,完成端口模型要求我们创建一个Win32完成端口对象,通过指定数量的线程,对重叠I/O请求进行管理,以便为已经完成的重叠I/O请求提供服务
  • 将来完成

    千次阅读 2011-01-01 12:30:00
    1. 将来完成时的基本用法 表示到将来某个时间为止势必会完成或预计要完成的动作,由“will [shall]+have+过去分词”构成。...(from www.nmet168.com)将来完成时用来表示在将来某一时间以前已经完成或一直持
  • activiti 自定义节点完成条件

    千次阅读 2020-06-02 21:53:42
    在activiti 中我们自定义实现节点满足某个条件时... nrOfCompletedInstances:已经完成实例的数目。 可以写成${nrOfCompletedInstances>0} //表示只要有人完成任务就通过该节点 项目中刚开始是这种需求,在不..
  • 前面已经完成了整个工程大部分模块,接下来进入整合联调以及模拟...被动出牌和主动出牌我们已经完成,叫分我们已经实现了权值的获取,只需要在外面加一个区间划分即可: /* 获取叫分函数 */ int LandScore(GameSituati
  • 此外,我们将展示如何正常关闭ExecutorService并等待已经运行的线程完成其执行。 2.Executor关闭后 使用Executor时,我们可以通过调用shutdown()或shutdownNow()方法将其关闭。虽然,它不会等到所有线程都停止...
  • 上一章我们已经完成了菜单模块的开发工作,那么到了本章我们将完成我们角色管理模块的开发工作,在本章开始一个全新的模块进行开发的时候我们需要遵守一定的命名和开发规范如下: 1、我们的Controller的...
  • 上一节我们使用了Java mail完成了给买家发送邮件的功能,还遗留一个功能,就是给买家发送短信,告诉他订单已经生成之类的。这一节主要介绍一下如何在用户支付完成后自动给用户发送短信。 1. 申请短信发送功能  很...
  • angularjs渲染完成后触发事件

    千次阅读 2020-04-10 16:18:58
    但在使用AngularJs来渲染页面时,onLoad不能保证AngularJs已经完成了页面的渲染。最常见的情况就是用AngularJs来加载某个数据Table,我们得等这个Table加载完之后对Table上的数据进行操作,但因为这个Table是由...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 30,418
精华内容 12,167
关键字:

我们已经完成