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

How to update ng-model based on selected object in angularjs?

我有一个滑块,像这样:

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

向 canvas 添加了两个文本。这就是我如何获得 selected 文本的属性:

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

object.target returns 具有如下属性的对象:object.target.fontSize:126 当然这两个对象是不同的。

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

您需要调用 $apply() to trigger the $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();
    }
});