我正在尝试编写一个chrome扩展,它将更改以下输入元素的值并触发将更改页面上其他值的模型更改:
<input type="text"
data-bind="value: trade.buyVolume, attr: { readonly: trade.buyMaxEnabled() }"
value="0"
name="quantity_Buy"
>
我可以使用以下行在Chrome控制台中实现此目的:
$('#form_Buy > div:nth-child(1) > div > div > input').prop('value', 6).trigger('change');
但是,当我从Chrome扩展程序运行相同的行时,它会更改输入的值,但不会更改视图模型的值,也不会触发其他页面更改。
我知道我需要更改视图模型值trade.buyVolume
,但无法从Chrome控制台访问它。
如何更改视图模型值?
答案 0 :(得分:2)
如何更改视图模型值?
通过更改视图模型值。
ko.contextFor(domElement)
不要在淘汰赛应用程序中修改DOM。始终修改viewmodel,仅修改viewmodel。
您可以使用BEGIN
DECLARE @string varchar(100) = 'asdsadsd asdad asd'
DECLARE @ResultString varchar(200) = ''
DECLARE @index int = 1
DECLARE @flag bit = 0
DECLARE @temp varchar(2) = ''
WHILE (@Index <LEN(@string)+1)
BEGIN
SET @temp = SUBSTRING(@string, @Index-1, 1)
--select @temp
IF @temp = ' ' OR @index = 1
BEGIN
SET @ResultString = @ResultString + UPPER(SUBSTRING(@string, @Index, 1))
END
ELSE
BEGIN
SET @ResultString = @ResultString + LOWER(SUBSTRING(@string, @Index, 1))
END
SET @Index = @Index+ 1--increase the index
END
SELECT @ResultString
检索元素的绑定上下文。 viewmodel是绑定上下文的一部分。请参阅:http://knockoutjs.com/documentation/unobtrusive-event-handling.html