从文本输入中获取数据,而不使用双向数据绑定

时间:2017-10-24 13:21:08

标签: javascript angularjs data-binding

长话短说,如果我在这里将<更改为=,它就有效:

const rtmNav = {
    bindings: {
        from:'<',
        to:'<',
        submit: '&'
    },
    controller: angular.noop,
    templateUrl: require('./rtmNav.html')
}

export default rtmNav;

这是定义dataa对象的控制器:

class DemandCtrl {
    constructor(ChartDataService) {
        this.ChartDataService = ChartDataService;
        debugger;
        this.dataa = {
            from: '10/01/2017',
            to:  '10/03/2017'
        };
    }

    $onInit() {
        getData.call(null, this);       
    }

    update() {

        getData.call(null, this);       
    }
}

该组件如下所示:

<div class="rtm-nav">   
    <div ng-app>
    <form ng-submit="$ctrl.submit()">
        <label>From:
            <input type="text" name="input" ng-model="$ctrl.from">
        </label>
        <label>To:
            <input type="text" name="input" ng-model="$ctrl.to">
        </label>
        <input type="submit" id="submit" value="Apply" />
    </form> 
    </div>
</div>

这样的html页面:

<div class="demand page">   
    <rtm-header title="Demand" icon="fa fa-line-chart" link=true></rtm-header> 
    <rtm-nav from="$ctrl.dataa.from", to="$ctrl.dataa.to", submit="$ctrl.update()">         
    </rtm-nav> 
    <div id="chart" class="demand-chart">
    </div>
</div>

首次运行应用程序时,它会显示硬编码值(10/01/201710/03/2017)之间的图表。如果它是双向数据绑定,如果我更改这些值并单击apply,它将使用新数据重新呈现图表。

我的约束是单向数据绑定。

我不知道该怎么做,显示我在update()中发送新参数,还是应该在组件中以某种方式添加它们?

0 个答案:

没有答案