我正在使用AngularJS构建鼓机,并且在用户界面调整速度时遇到问题。
我有对象“this.tempo=120
”&amp; “<input class="bpm-input" type="number" onchange="updateBPM()" min="100" max="150" ng-model="$ctrl.tempo"></input>
”
这似乎不会更新tempo
值,只会更新输入框中显示的值。
更新控制器内的值需要什么功能?
答案 0 :(得分:0)
这是正常的,当你使用AngularJS时,你需要使用Angular WAY。
换句话说,对你来说角度是唯一的方法。
AngularJS彻底控制您的DOM并将其用作副本。
如果在没有角度行为的情况下更改DOM,则角度无法更新其副本并引发不良行为。
你需要使用所有Angular的东西,告诉他将你的魔法应用到你的DOM上。
按onclick
angular指令更改ng-click
属性,将updateBPM放入控制器范围,这样就行了。
希望能帮到你!
答案 1 :(得分:0)
您可以执行的基本操作就像在附加的代码片段中一样,尝试使用Angular模式来实现可管理的代码库和良好的性能Patterns
<html>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>
<body>
<div ng-app="myApp" ng-controller="myController as myCtrl">
<input class="bpm-input" type="number" ng-change="myCtrl.updateBPM()" min="100" max="150" ng-model="myCtrl.tempo"></input>
</div>
<script>
var app = angular.module('myApp', []);
app.controller('myController', function($scope) {
var myCtrl = this;
myCtrl.tempo=120;
myCtrl.updateBPM = function(){
alert(myCtrl.tempo);
}
});
</script>
</body>
</html>
&#13;
答案 2 :(得分:0)
代码附在
下面x = [2,5,6,8,4,5,10,33];
start_w = 4;
end_w = 7;
[m,I] = max(x(start_w:end_w));
I = I + start_w - 1; %reindex to x, so that x(I)==m