小编Zal*_*oza的帖子

如何在ngFor angular 2中使用track

尝试了我能猜出的每一种语法都无法使其有效!

<!--- THIS WORKS FINE --->
<ion-card *ngFor="#post of posts">
{{post|json}}
</ion-card>

<!--- BLANK PAGE --->
<ion-card *ngFor="#post of posts track by post.id">
{{post|json}}
</ion-card>

<!--- Exception : Cannot read property 'id' of undefined --->
<ion-card *ngFor="#post of posts;trackBy:post.id">
{{post|json}}
</ion-card>

<!--- Exception : Cannot read property 'undefined' of undefined --->
<ion-card *ngFor="#post of posts;trackBy:posts[index].id">
{{post|json}}
</ion-card>

<!--- Blank page no exception raised !  --->
<ion-card *ngFor="#post of posts;#index index;trackBy:posts[index].id">
{{post|json}}
</ion-card>
Run Code Online (Sandbox Code Playgroud)

对我有用的唯一方法是

  1. 在控制器类中创建方法

    识别(索引,帖子:帖子){return post.id}

<ion-card *ngFor="#post of …
Run Code Online (Sandbox Code Playgroud)

angularjs-track-by ngfor angular

46
推荐指数
3
解决办法
8万
查看次数

使用php和mysql的通知系统

我想为我们学校实施一个通知系统,它是一个不为公众开放的php/mysql webapp,因此它不会收到太多流量."每日500-1000名访客".

1.我最初的方法是使用MYSQL触发器:

我使用Mysql AFTER INSERT trigger将记录添加到名为的表中notifications.就像是.

'CREATE TRIGGER `notify_new_homwork` AFTER INSERT ON `homeworks`
 FOR EACH ROW INSERT INTO `notifications` 
    ( `from_id`, `note`, `class_id`) 
 VALUES 
    (new.user_id, 
        concat('A New homework Titled: "',left(new.title,'50'),
        '".. was added' )
    ,new.subject_id , 11);'
Run Code Online (Sandbox Code Playgroud)

这种黑魔法工作得非常好,但我无法跟踪这个通知是否是新的"显示用户新通知的数量".所以我添加了一个名为notification的页面.

通过类似的方式检索通知

SELECT n.* from notifications n 
JOIN user_class on user_class.class_id = n.class_id where user_class.user_id = X;
Run Code Online (Sandbox Code Playgroud)

注意:表user_class将用户链接到类"user_id,class_id,subject_id"-subject为null,除非用户是教师'

现在我的下一个挑战是.

  1. 如何跟踪每个用户的新旧通知?
  2. 如何将与用户类似的通知聚合到一行?

例如,如果2个用户对某些内容发表了评论,那么就不要插入新行,只需使用"userx和其他1个在hw上注释"的内容更新旧行.

非常感谢

编辑

根据下面的答案,要在行上设置读/未读标志,我需要为每个学生设置一行而不仅仅是整个类的一行..这意味着将触发器编辑为类似

insert into notifications (from_id,note,student_id,isread)
select new.user_id,new.note,user_id,'0' from user_class where user_class.class_id = new.class_id group by …
Run Code Online (Sandbox Code Playgroud)

php mysql notifications triggers

43
推荐指数
1
解决办法
5万
查看次数

在单页网站中使用jquery ajax加载页面时显示进度条

我有一个基本页面,顶部有一个导航栏,还有一个包装体.

每当用户点击导航链接时,它就会将.load页面内容加载到包装器div中.

$(this).ajaxStart(function(){$('.progressbar .bar').css('width','5%');$('.progressbar').fadeIn();});
$(this).ajaxEnd(function(){$('progressbar').hide();});

$('.ajaxspl').on('click',function(e){
    e.preventDefault();

    var url=$(this).data('url'),
        wrap=$('body #wrap');

    //clean the wrapper
    wrap.slideUp().html('');

    //load page into wrapper
    wrap.load(url,function(){wrap.slideDown();});
});
Run Code Online (Sandbox Code Playgroud)

返回值的示例来自.load:

<div>
...content
</div>
<script>$('.progressbar .bar').css('width','30%');</script>
<link href="/assets/css/datepicker.css" rel="stylesheet" />
<script>$('.progressbar .bar').css('width','60%');</script>
<link href="/assets/css/main.css" rel="stylesheet" />
<script>$('.progressbar .bar').css('width','90%');</script>
<script>//blah blah</script>
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,我有一个我显示的Bootstrap进度条,在ajaxstart()我调用的页面上,我会在每个项目加载后修改进度条的值.

这在Firefox上运行良好,我可以在等待页面加载时看到进度条,但它在Chrome或IE上不起作用.

有一个更好的方法吗?我这样做是正确的还是有另一种方法可以做到这一点?

例如,获取$.ajax页面大小为kb并在收到数据时动态更新进度条?

我正在尝试在加载Gmail时生成与"加载"页面类似的内容.

javascript php ajax jquery progress-bar

33
推荐指数
2
解决办法
8万
查看次数

javascript将函数应用于对象数组上的每个元素

[ {name:'hi',data:'1,2,3,4,5'} , {name:'hello',data:'5,4,3,2,1'} ]
Run Code Online (Sandbox Code Playgroud)

我需要的是对data数组中的每个对象应用拆分,以便得到结果

[ {name:'hi',data:[1,2,3,4,5]} , {name:'hello',data:[5,4,3,2,1]} ]
Run Code Online (Sandbox Code Playgroud)

我知道我可以为每个循环使用数组并生成一个新数组,但是有更好,更快的方法吗?

var arr = [{
    name: 'hi',
    data: '1,2,3,4,5'
}, {
    name: 'hello',
    data: '5,4,3,2,1'
}];

var new_arr = [];
for (i in arr) {
    var temp = {};
    temp.name = arr[i].name;
    temp.data = arr[i].data.split(',');
    new_arr.push(temp);
}
Run Code Online (Sandbox Code Playgroud)

javascript arrays

31
推荐指数
2
解决办法
5万
查看次数

Mysql:修剪数据库中的所有字段

UPDATE mytable SET mycolumn= LTRIM(RTRIM(mycolumn));
Run Code Online (Sandbox Code Playgroud)

修剪列删除拖车空间工作正常,但我如何调整它来修剪所有列而不必写表中的每个列名?因为我有一个庞大的数据库.

mysql trim

23
推荐指数
3
解决办法
1万
查看次数

如何使用react webpack设置bootstrap 4 scss

我正在使用reactjs ES6和webpack开始一个新项目

使用react-static-boilerplate启动问题是如何将bootstrap4导入构建过程?

我不想使用bootstrap.css生成的文件,而是我希望webpack为我构建它,这样我就可以更改它的@variables并应用我的主题等.

我通过克隆样板开始了项目

> git clone -o react-static-boilerplate -b master --single-branch \
      https://github.com/kriasoft/react-static-boilerplate.git MyApp
>cd MyApp && npm install
Run Code Online (Sandbox Code Playgroud)
  1. 使用npm安装bootstrap

    npm install bootstrap@4.0.0-alpha.3

现在,如果我需要主引导文件到我的index.js它将加载正常.但是如何才能包含bootsrap的sass文件来开始自定义呢?

css twitter-bootstrap reactjs webpack

22
推荐指数
3
解决办法
2万
查看次数

在create react app Reactjs应用程序中使用常见的Sdk模块共享代码库

我想开始一个同时具有web和reactnative接口的新应用程序.

我决定将所有业务 - 非环境依赖代码转移到第三个包-aka sdk-我可以在两者之间共享反应和反应原生.

所以我的项目现在有4个模块

  1. 网络 - 用cra创建
  2. Sdk - 主要是redux + redux saga +反应容器+ Hoc's
  3. 移动 - 反复原生
  4. 服务器 - nodejs表达api.

    • 所有的网络,移动和服务器都将依赖于Sdk模块.
    • sdk模块将依赖于服务器模块 - 主要是为了暗示模拟和数据接口.

有没有标准的方法来实现这样的结构?

我很可能会喜欢

  • 使用纱线工作区将所有节点模块提升到一个文件夹中,以避免在每个项目中重新安装包
  • 我将同时在所有4个项目中工作,所以我需要hotreload才能意识到这一点.

**面临的挑战**

  1. Cra不会在src文件夹之外转换代码,所以虽然web项目确实刷新,但是我在sdk上做了更改.它无法理解es6代码.
  2. Jest也不了解node_modules中的es6

如何在同时处理sdk和Web模块的同时避免重建步骤?

babel reactjs react-native create-react-app monorepo

16
推荐指数
2
解决办法
492
查看次数

React-redux组件不会在存储状态更改时重新呈现

我今天说要学习反应和减少,但我无法弄清楚如何在状态改变后迫使组件重新渲染.

这是我的代码:

const store = createStore(loginReducer);
export function logout() { return {type: 'USER_LOGIN'} }
export function logout() { return {type: 'USER_LOGOUT'} }
export function loginReducer(state={isLogged:false}, action) {
  switch(action.type) {
    case 'USER_LOGIN':
      return {isLogged:true};
    case 'USER_LOGOUT':
      return {isLogged:false};
    default:


         return state;
      }
    }

    class App extends Component {

      lout(){
        console.log(store.getState()); //IT SHOW INITIAL STATE
        store.dispatch(login());
        console.log(store.getState()); //IT SHOWS THAT STATE DID CHANGE
      }

      ////THIS IS THE PROBLEM, 
    render(){
    console.log('rendering')
    if(store.getState().isLogged){
      return (<MainComponent store={store} />);
    }else{
      return (
        <View style={style.container}>
          <Text onPress={this.lout}> …
Run Code Online (Sandbox Code Playgroud)

reactjs react-native redux react-redux

14
推荐指数
2
解决办法
3万
查看次数

php:将图像存储到Mysql blob中,好还是坏?

这个问题令我困惑,所以我想我应该听一个专家的声音!

将图像上传到文件夹并保存到mysql的链接更好,或者更好地将img本身上传到blob mysql字段?

非常感谢你

php mysql blob

11
推荐指数
1
解决办法
1万
查看次数

Onesignal推送通知高级定位

我正在使用onesignal处理我的网络和离子应用程序的pish通知.我的问题是

我可以使用服务器rest api设置用户段吗?

我想让我的用户能够订阅特定事件(频道)来限制他们收到的推送通知.

user1 subscribed to group I'd (1,3,8)
user2  groups(5,8,11)
User3 groups(12,13)
Run Code Online (Sandbox Code Playgroud)

当事件发生在第8组时.

如何向订阅了第8组的所有用户发送推送通知? - 在上面的例子中,通知应发送给user1和user2,但不是3.

push-notification onesignal

10
推荐指数
1
解决办法
8819
查看次数