在AngularJS中,我知道我可以通过依赖注入器为我定义的提供者(服务,控制器等)注入服务。我知道我可以这样做:
app.factory('myFactory', ['$window', function ($window) {
// Now I can check properties on Window.
if (!$window.sessionStorage) throw new Error("message");
}]);
但使用注射器可以做这样的事吗?
app.factory('myFactory', ['$window.sessionStorage', function ($storage) {
// Now I can check properties on Window.
if (!$storage) throw new Error("message");
}]);
我正在编写服务,并且我希望我的依赖项可以在逻辑基础上进行交换,如果可能的话,但我不一定要依赖于为一个包装器编写包装器POJO对象。
谢谢!
答案 0 :(得分:0)
你无法做你想做的事。您需要创建一个包装器服务。这样做很简单。对于会话存储,您可以使用ngStorage:https://github.com/gsklee/ngStorage。通过使用它,您不必序列化/反序列化。
答案 1 :(得分:0)
实际上 - 有一种方法可以使用<?php
$result = mysqli_query($connection, $query);
// If the update button is clicked and the if an option has been selected for the <select> tag.
if(isset($_POST["updated_value"])) {
if(isset($_POST["selectDropDown"])) {
$updatedValue = $_POST["selectDropDown"];
}
} else {
$updatedValue = '1';
}
?>
<table>
<tr>
<th>Description </th>
<th>Quantity</th>
</tr>
</table>
<?php while($cart = mysqli_fetch_assoc($result)) { ?>
<form action="cart.php" method="POST">
<table>
<tr>
<td>
<?php echo $cart["prod_desc"]; ?>
</td>
<td>
<select name= "selectDropDown" >
<option value="<?php echo $updatedValue; ?>" > <?php echo $updatedValue; ?> </option>
<option value="2"> 2 </option> <?php // HELP: HOW DO I MAKE THE LIST OPTIONS LOAD FROM DATABASE??? ?>
<option value="3"> 3 </option>
<option value="4"> 4 </option>
<option value="5"> 5 </option>
<option value="6"> 6 </option>
<option value="7"> 7 </option>
<option value="8"> 8 </option>
<option value="9"> 9 </option>
<option value="10"> 10 </option>
</select>
</td>
<td>
<input type="submit" name="updated_value" value="update"/>
</td>
</tr>
</table>
</form>
<?php
}
?>
或.constant
来完成此操作。 (据我所知,.value
可以在.constant
块中使用,config
不能使用。)您可以执行以下操作:
value
......你有它。
或者,由于Angular中的提供程序很糟糕(并且非常混乱且难以记住),因此可能更容易使用angular.module('myApp', [])
.value('storage', window.localStorage);
并手动将.provider
之类的内容附加到{{1}功能。