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

Posted

技术标签:

【中文标题】如何根据 angularjs 中的选定对象更新 ng-model?【英文标题】:How to update ng-model based on selected object in angularjs? 【发布时间】:2018-02-01 13:22:04 【问题描述】:

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

 <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,当然这两个对象的 this 是不同的。

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

【问题讨论】:

【参考方案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();
    
);

【讨论】:

我认为这可能很容易。谢谢你!

以上是关于如何根据 angularjs 中的选定对象更新 ng-model?的主要内容,如果未能解决你的问题,请参考以下文章

使用 AngularJS 跟踪当前选定的项目

AngularJS - 过滤对象中的选定属性

根据另一个 ItemsControl 的选定对象更新 ItemsControl.ItemsSource

下拉列表不会根据范围值angularjs进行更新

如何使选定的值与 AngularJS 中的选项值不同?

如何使用 AngularJS for Ionic 更改网页中的选定选项?