Javascript 可能的角度范围阴影无法解释
我尝试了几种不同的方法或包装了一个简单的jquery ui滑块,第一种方法是:Javascript 可能的角度范围阴影无法解释,javascript,angularjs,jquery-ui,angularjs-scope,shadowing,Javascript,Angularjs,Jquery Ui,Angularjs Scope,Shadowing,我尝试了几种不同的方法或包装了一个简单的jquery ui滑块,第一种方法是: //Slider control TDApp.directive("tdControlSlider", ["TDSV", function (TDSV) { return { scope: { property: "=", min: "=", max: "=",
//Slider control
TDApp.directive("tdControlSlider", ["TDSV", function (TDSV) {
return {
scope: {
property: "=",
min: "=",
max: "=",
step: "="
},
restrict: "E",
replace: true,
templateUrl: TDSV.TEMPLATE_PATH + "Controls/Slider.htm",
link: function (scope, elem, attrs) {
scope.sliderElem = elem.find(".sliderDiv").first();
scope.sliderElem.slider({
min: scope.min,
max: scope.max,
step: scope.step,
slide: function (event, obj) {
scope.property = obj.value;
scope.$apply()
console.log(obj.value);
console.log(scope.property);
}
});
}
};
}]);
我假设这不起作用,因为有阴影,所以我选择传递一个对对象的引用及其一个属性的字符串值:
//Slider control
TDApp.directive("tdControlSlider", ["TDSV", function (TDSV) {
return {
scope: {
object: "=",
property: "@",
min: "=",
max: "=",
step: "="
},
restrict: "E",
replace: true,
templateUrl: TDSV.TEMPLATE_PATH + "Controls/Slider.htm",
link: function (scope, elem, attrs) {
scope.sliderElem = elem.find(".sliderDiv").first();
scope.sliderElem.slider({
min: scope.min,
max: scope.max,
step: scope.step,
slide: function (event, obj) {
scope.object[scope.property] = obj.value;
scope.$apply()
console.log(obj.value);
console.log(scope.object[scope.property]);
}
});
}
};
}]);
在这两种情况下,控制台都会显示预期值,但不会更新模型。通常这意味着这些值在不同的作用域之间被隐藏,这就是为什么我将其更改为第二个版本,但这也不起作用。有什么想法吗?你需要在幻灯片活动中执行
$scope.apply()
。哇哦。我不敢相信我忽略了这一点。感谢PSL。添加作用域。$apply()没有做任何事情。你能在plunkr/jsbin中准备一个演示吗以下plunker似乎工作得很好,这让我比以往任何时候都更困惑: