首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >动态数据绑定

动态数据绑定
EN

Stack Overflow用户
提问于 2015-10-01 00:00:43
回答 2查看 482关注 0票数 1

下面是简单输入字段模型绑定的角度示例。

代码语言:javascript
复制
<div ng-app>
  <div>
    <input type="text" ng-model="yourName" placeholder="Enter a name here">
    <h1>Hello {{yourName}}!</h1>
  </div>
</div>

如何使用Jade使用流星火焰复制相同的功能,即输入字段更改事件将更新相应的助手。

更新

下面是我在“烈火与玉石”中的代码:

代码语言:javascript
复制
.form-group
 lable 
 | Click buttons to increase their values:
 input#user(type="text")
 span 
 |{{usernameinput}}

以下是javascript代码:

代码语言:javascript
复制
Template.unitconversion.helpers({
    'nm': function(){ return "100" }
});

Template.unitconversion.events({  
    'keyup #user': function(evt, tmpl){
        var tor = tmpl.find('#user').value;
        console.log(tor);       
        //console.log(evt);
        //console.log(tmpl);

        Template.unitconversion.helpers({           
            'usernameinput': function()
            {               
                return tor
            }
        });
    }
});

当用户输入被更改时,我期望助手函数更新'usernameinput‘,但是什么都没有发生。每当输入字段更改时,我都会得到预期的控制台输出。

如果能解决这个问题,我们将不胜感激。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-10-01 07:49:05

让我用“空格键”回答你的问题。我想你应该能很容易地把它翻译成“玉”。首先,请确保添加了reactive-dict包:

代码语言:javascript
复制
meteor add reactive-dict

它比您预期的要复杂一些,但是下面的代码应该能很好地完成这项工作:

代码语言:javascript
复制
<template name="hello">
  <h1>Wellcome {{myName}}!</h1>
  <p>
    Tell your name <input type="text" name="myName" value="{{myName}}"/>
  </p>
</template>

以及相应的javascript

代码语言:javascript
复制
Template.hello.onCreated(function () {
  this.state = new ReactiveDict();
});

Template.hello.helpers({
  myName: function () {
    return Template.instance().state.get('myName');
  },
});

Template.hello.events({
  'keyup input[name]': function(e, t) {
    t.state.set($(e.target).attr('name'), $(e.target).val());
  }
});

之所以如此“复杂”,是因为Meteor没有提供内置的双向数据绑定支持。这并不意味着它不能像上面的例子所显示的那样。

您可以在流星食谱中阅读更多关于双向数据装订的内容:

https://github.com/awatson1978/meteor-cookbook/blob/master/cookbook/data-binding.md#two-way-data-binding-1

票数 1
EN

Stack Overflow用户

发布于 2015-10-01 07:41:46

根据米歇尔·弗洛伊德的指导意见,以下是工作守则:

翡翠模板:

代码语言:javascript
复制
.form-group    
   lable 
     | Click buttons to increase their values:
   input#user(type="text")
   span
     | {{usernameinput}}

Javascript:

代码语言:javascript
复制
var usernameinput = new ReactiveVar(0);

Template.unitconversion.helpers({
    usernameinput: function(){ return usernameinput.get();
    }
});

Template.unitconversion.events({  
    'keyup #user': function(evt, tmpl){
        var tor = tmpl.find('#user').value;
        console.log(tor);
        usernameinput.set(tor);
    }
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32877453

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档