如何根据angularjs中的选定对象更新ng-model?

时间:2017-08-23 20:03:48

标签: javascript angularjs fabricjs angularjs-ng-model

我有一个滑块,如下所示:

 <md-slider aria-label="text size" step="1"
            ng-change="text.setProperty('fontSize', fontSize)"
            ng-model="fontSize" min="1" max="100">
 </md-slider>

画布中添加了两个文本。这就是我获取所选文本属性的方法:

canvas.fabric.on('object:selected', function(object) {
    if (object.target instanceof fabric.Text) {
        console.log(object.target);
    }
});

object.target返回一个对象,其属性类似于:object.target.fontSize:126,当然这对于两个对象都是不同的。

如何轻松更新模型(带有字体大小值的输入字段),以便根据所选对象显示字体大小。现在,如果我选择任何文本对象,它会显示相同的值。谢谢!

1 个答案:

答案 0 :(得分:1)

您需要致电$apply()以触发$digest周期,以便您的值在视图中更新。

您可以在控制器中设置fontSize的值,然后按$scope.$apply()设置,如下所示:

canvas.fabric.on('object:selected', function(object) {
    if (object.target instanceof fabric.Text) {
        console.log(object.target);
        $scope.fontSize = object.target.fontSize;
        $scope.$apply();
    }
});